自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

干炒牛河的博客

正在苦修的研究僧

  • 博客(63)
  • 收藏
  • 关注

原创 543.二叉树的直径

给你一棵二叉树的根节点,返回该树的。二叉树的是指树中任意两个节点之间最长路径的。这条路径可能经过也可能不经过根节点root。两节点之间路径的由它们之间边数表示。

2025-03-05 15:20:52 142

原创 二叉树的前序遍历

给你二叉树的根节点root,返回它节点值的遍历。

2025-03-05 14:41:48 247

原创 104.二叉树的最大深度

给定一个二叉树root,返回其最大深度。二叉树的是指从根节点到最远叶子节点的最长路径上的节点数。

2025-03-04 17:09:12 116

原创 数据结构:二叉树

最常见的二叉树就是类似链表那样的链式存储结构,每个二叉树节点有指向左右子节点的指针,这种方式比较简单直观。我们说的满二叉树,按理说应该翻译成 Full Binary Tree 对吧,但其实不是,满二叉树的定义对应英文的 Perfect Binary Tree。二叉树的层序遍历,顾名思义,就是一层一层地遍历二叉树。知道节点的层数是个常见的需求,比方说让你收集每一层的节点,或者计算二叉树的最小深度等等。那么假设,如果每条树枝的权重和可以是任意值,现在让你层序遍历整棵树,打印每个节点的路径权重和,你会怎么做?

2025-03-04 16:42:09 710

原创 49.字母异位词分组

给你一个字符串数组,请你将组合在一起。可以按任意顺序返回结果列表。是由重新排列源单词的所有字母得到的一个新单词。

2025-03-03 16:17:27 150

原创 数据结构:哈希表

1、为什么我们常说,哈希表的增删查改效率都是 O(1)?因为哈希表底层就是操作一个数组,其主要的时间复杂度来自于哈希函数计算索引和哈希冲突。只要保证哈希函数的复杂度在 O(1),且合理解决哈希冲突的问题,那么增删查改的复杂度就都是 O(1)。2、哈希表的遍历顺序为什么会变化?因为哈希表在达到负载因子时会扩容,这个扩容过程会导致哈希表底层的数组容量变化,哈希函数计算出来的索引也会变化,所以哈希表的遍历顺序也会变化。3、哈希表的增删查改效率一定是 O(1)O(1) 吗?

2025-03-03 15:11:38 921

原创 739.每日温度

给定一个整数数组,表示每天的温度,返回一个数组answer,其中answer[i]是指对于第i天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用0来代替。

2025-03-03 11:03:09 164

原创 155.最小栈

设计一个支持pushpoptop操作,并能在常数时间内检索到最小元素的栈。实现MinStackMinStack()void pop()int top()

2025-03-03 10:01:12 113

原创 496.下一个更大元素

nums1中数字x的是指x在nums2中对应位置的比x大的元素。给你两个的数组nums1和nums2,下标从开始计数,其中nums1是nums2的子集。对于每个,找出满足的下标j,并且在nums2确定nums2[j]的。如果不存在下一个更大元素,那么本次查询的答案是-1。返回一个长度为的数组ans作为答案,满足ans[i]是如上所述的。

2025-03-02 16:52:48 223

原创 20.有效的括号

判断字符串是否有效。

2025-03-02 15:26:27 96

原创 23.合并 k 个有序链表

给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。链表数组如下:1->4->5,1->3->4,2->6将它们合并到一个有序链表中得到。

2025-02-26 15:14:57 217

原创 字符串函数substr

substr是 C++ 标准库中string类的成员函数,用于从字符串中提取子字符串。它的基本作用是返回从指定位置开始的子字符串。

2025-02-26 10:08:33 219

原创 5.最长回文子串

给你一个字符串s,找到s中最长的 回文 子串。"bab""aba" 同样是符合题意的答案。

2025-02-25 10:53:08 796

原创 数据结构:哈希表(unordered_map)

是 C++ 标准库中的一种哈希表实现,它提供了基于键值对(key-value)的存储,提供了常数时间复杂度的查找、插入和删除键值对的操作。另外,在C++哈希表中,如果被访问的是一个不存在的键,它会自动创建这个键,对应的值时默认构造的值。

2025-02-21 15:15:00 279

原创 数据结构:队列queue和栈stack

queue是 C++ 标准库中的队列容器,基于先进先出(FIFO)的原则。队列适用于只允许从一端(队尾)添加元素、从另一端(队头)移除元素的场景。

2025-02-21 10:57:26 284 1

原创 数据结构:双链表list

一般情况下,我们在头部增删元素会使用双链表,因为他在头部增删元素的效率比vector高。但我们通过索引访问元素时一般会使用vector。是 C++ 标准库中的双向链表容器。

2025-02-21 10:31:39 483

原创 数据结构:动态数组vector

另外,根据数组的特性,利用索引访问元素很高效,从尾部删除元素也是很高效的;但是从中间或者头部删除或增加元素需要数据搬移,很低效。等方式来创建静态数组,但是这种方式繁琐且容易出错。我们做算法题一般使用动态数组。, 并且在刷题网站的题目给的输入一般也是。是 C++ 标准库的动态数组。在C语言中一般初学者会使用。

2025-02-21 10:15:29 482

原创 多行输入(stringstream和getline)

getline函数是 C++ 中用于从输入流中读取一行文本的函数,通常用于读取用户输入或文件中的一行数据。// 用来存储输入的文本// 提示用户输入一行文本cout << "请输入一行文本: ";// 使用 getline 从标准输入中读取一整行// 输出用户输入的内容cout << "你输入的内容是: " << line << endl;return 0;getline会读取一整行数据,直到遇到换行符(\n)为止。它不会将换行符包含在返回的字符串中。函数原型为:is:输入流对象(如。

2025-02-20 17:13:09 372

原创 入门篇:输入

变量是用来存储数据的内存位置,而数据类型则定义了存储数据的类型。是一个用于简化代码的语句,它的作用是告诉编译器你希望使用标准库中的名称而不需要加上。即标准输出流对象,通常用于向屏幕输出数据。,它是标准输入流对象,通常用于从键盘读取输入数据。C++ 提供了多种方式来控制输入输出的格式,例如。C++ 标准库的函数、类、对象等都定义在。C++的输入输出操作主要通过标准库中的。是标准输入输出流对象,它们的全名是。在这一段代码中,如果使用。C++ 的标准输出通常使用。C++ 的标准输入使用。

2025-02-20 16:54:32 352

原创 61.旋转链表

给你一个链表的头节点head,旋转链表,将链表每个节点向右移动k个位置。

2024-06-21 09:30:24 207

原创 82. 删除排序链表中的重复元素 II

给定一个已排序的链表的头head删除原始链表中所有重复数字的节点,只留下不同的数字。返回已排序的链表。

2024-05-31 09:27:26 197 1

原创 19. 删除链表的倒数第 N 个结点

给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。

2024-05-30 15:42:32 270

原创 92. 反转链表 II

给你单链表的头指针head和两个整数left和right,其中。请你反转从位置left到位置right的链表节点,返回。

2024-05-28 11:14:08 400

原创 代码测试用例测试结果21. 合并两个有序链表

将两个升序链表合并为一个新的链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

2024-04-28 15:43:42 343

原创 2. 两数相加

给你两个的链表,表示两个非负的整数。它们每位数字都是按照的方式存储的,并且每个节点只能存储数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。

2024-04-26 20:57:25 268

原创 141. 环形链表

给你一个链表的头节点head,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数pos来表示链表尾连接到链表中的位置(索引从 0 开始)。pos。仅仅是为了标识链表的实际情况。如果链表中存在环,则返回true。否则,返回false。

2024-04-25 16:33:10 206

原创 134. 加油站

在一条环路上有n个加油站,其中第i个加油站有汽油gas[i]升。你有一辆油箱容量无限的的汽车,从第i个加油站开往第i+1个加油站需要消耗汽油cost[i]升。你从其中的一个加油站出发,开始时油箱为空。给定两个整数数组gas和cost,如果你可以按顺序绕环路行驶一周,则返回出发时加油站的编号,否则返回-1。如果存在解,则它是的。

2024-04-21 17:06:31 274

原创 238. 除自身以外数组的乘积

给你一个整数数组nums,返回数组answer,其中answer[i]等于nums中除nums[i]之外其余各元素的乘积。题目数据数组nums之中任意元素的全部前缀元素和后缀的乘积都在整数范围内。请且在O( n)时间复杂度内完成此题。

2024-04-17 09:29:45 237

原创 15. 三数之和

给你一个整数数组nums,判断是否存在三元组满足i!= ji!= k且j!= k,同时还满足。请你返回所有和为0且不重复的三元组。答案中不可以包含重复的三元组。

2024-04-15 15:28:36 342

原创 11. 盛最多水的容器

给定一个长度为n的整数数组height。有n条垂线,第i条线的两个端点是(i, 0)和。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。你不能倾斜容器。

2024-04-12 15:56:45 312

原创 167. 两数之和 II - 输入有序数组

给你一个下标从开始的整数数组numbers,该数组已按,请你从数组中找出满足相加之和等于目标数target的两个数。如果设这两个数分别是和,则。以长度为 2 的整数数组的形式返回这两个整数的下标index1和index2。你可以假设每个输入,而且你重复使用相同的元素。你所设计的解决方案必须只使用常量级的额外空间。

2024-04-11 15:29:00 408

原创 392. 判断子序列

给定字符串和,判断是否为的子序列。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。如果有大量输入的 S,称作 S1, S2, ... , Sk 其中 k >= 10亿,你需要依次检查它们是否为 T 的子序列。在这种情况下,你会怎样改变代码?

2024-04-09 16:43:56 341

原创 125. 验证回文串

如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个。"amanaplanacanalpanama" 是回文串。在移除非字母数字字符之后,s 是一个空字符串 ""。由于空字符串正着反着读都一样,所以是回文串。"raceacar" 不是回文串。字母和数字都属于字母数字字符。

2024-04-08 15:35:13 192

原创 14. 最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。

2024-04-06 14:29:24 184

原创 58. 最后一个单词的长度

单词的长度。

2024-03-28 15:38:44 151

原创 13. 罗马数字转整数

罗马数字包含以下七种字符:IVXLCD和M。例如, 罗马数字2写做II,即为两个并列的 1。12写做XII,即为XII。27写做XXVII, 即为XXVII。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做IIII,而是IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。同样地,数字 9 表示为IX。IVXXLCCDM给定一个罗马数字,将其转换成整数。

2024-03-26 20:25:33 273

原创 274. H 指数

给你一个整数数组citations,其中表示研究者的第i篇论文被引用的次数。计算并返回该研究者的 h。根据维基百科上h代表“高引用次数” ,一名科研人员的h是指他(她)至少发表了h篇论文,并且有h篇论文被引用次数大于等于h。如果h有多种可能的值,h是其中最大的那个。

2024-03-22 15:12:57 384

原创 45. 跳跃游戏 II

给定一个长度为n的整数数组nums。初始位置为nums[0]。每个元素nums[i]表示从索引i向前跳转的最大长度。换句话说,如果你在nums[i]处,你可以跳转到任意i + j < n返回到达的最小跳跃次数。生成的测试用例可以到达。

2024-03-21 16:07:27 530

原创 55. 跳跃游戏

给你一个非负整数数组nums,你最初位于数组的。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标,如果可以,返回true;否则,返回false。

2024-03-16 14:36:53 278

原创 122. 买卖股票的最佳时机 II

给你一个整数数组prices,其中prices[i]表示某支股票第i天的价格。在每一天,你可以决定是否购买和/或出售股票。你在任何时候只能持有股票。你也可以先购买,然后在出售。返回你能获得的利润。

2024-03-14 15:50:58 275

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除