
LeetCode
文章平均质量分 64
和光同尘@
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
贪心算法大礼包
随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6 - 3 = 3。其中一个是 [1, 17, 10, 13, 10, 16, 8] ,各元素之间的差值为 (16, -7, 3, -3, 6, -8)。在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。整个序列均为摆动序列,各元素之间的差值为 (6, -3, 5, -7, 3)。原创 2025-03-05 20:52:25 · 771 阅读 · 0 评论 -
55. 跳跃游戏(LeetCode)
无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到达最后一个下标。可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标,如果可以,返回。题目和题目之间没什么关系。给你一个非负整数数组。定义性的变量(开辟空间。原创 2025-03-01 14:35:02 · 358 阅读 · 0 评论 -
122. 买卖股票的最佳时机 II(LeetCode)
随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6 - 3 = 3。在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。在这种情况下, 交易无法获得正利润,所以不参与交易可以获得最大利润,最大利润为 0。原创 2025-03-01 13:43:34 · 315 阅读 · 0 评论 -
(LeetCode)376. 摆动序列
其中一个是 [1, 17, 10, 13, 10, 16, 8] ,各元素之间的差值为 (16, -7, 3, -3, 6, -8)。仅有一个元素或者含两个不等元素的序列也视作摆动序列。不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。可以通过从原始序列中删除一些(也可以不删除)元素来获得,剩下的元素保持其原始顺序。整个序列均为摆动序列,各元素之间的差值为 (6, -3, 5, -7, 3)。如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为。原创 2025-03-01 09:21:44 · 502 阅读 · 0 评论 -
455. 分发饼干(LeetCode)
假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。虽然你有两块小饼干,由于他们的尺寸都是 1,你只能让胃口值是 1 的孩子满足。,这个孩子会得到满足。你的目标是满足尽可能多的孩子,并输出这个最大数值。你有三个孩子和两块小饼干,3 个孩子的胃口值分别是:1,2,3。你有两个孩子和三块小饼干,2 个孩子的胃口值分别是 1,2。,这是能让孩子们满足胃口的饼干的最小尺寸;你拥有的饼干数量和尺寸都足以让所有孩子满足。从后往前 又包含着什么思考呢。所以你应该输出 1。原创 2025-02-28 20:16:07 · 494 阅读 · 0 评论 -
153. 寻找旋转排序数组中的最小值(LeetCode热题100)
它原来是一个升序排列的数组,并按上述情形进行了多次旋转。请你找出并返回数组中的。原数组为 [0,1,2,4,5,6,7] ,旋转 4 次得到输入数组。原数组为 [11,13,15,17] ,旋转 4 次得到输入数组。原数组为 [1,2,3,4,5] ,旋转 3 次得到输入数组。的数组,预先按照升序排列,经由。你必须设计一个时间复杂度为。原创 2025-02-21 23:01:10 · 329 阅读 · 0 评论 -
33. 搜索旋转排序数组(LeetCode热题100)
【代码】33. 搜索旋转排序数组(LeetCode热题100)原创 2025-02-21 22:22:37 · 308 阅读 · 0 评论 -
算法模板(二分法开区间模板,二分法闭区间模板)
【代码】算法模板(二分法开区间模板,二分法闭区间模板)原创 2025-02-21 21:52:01 · 218 阅读 · 0 评论 -
74. 搜索二维矩阵(LeetCode 热题 100)
每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。给你一个满足下述两条属性的。原创 2025-02-21 21:46:29 · 1998 阅读 · 0 评论 -
34. 在排序数组中查找元素的第一个和最后一个位置(LeetCode热题100)
输入:nums = [5,7,7,8,8,10], target = 8。输入:nums = [5,7,7,8,8,10], target = 6。//数组为空或者数组中没有target。请你找出给定目标值在数组中的开始位置和结束位置。输入:nums = [], target = 0。//这段代码是点睛之笔。给你一个按照非递减顺序排列的整数数组。你必须设计并实现时间复杂度为。如果数组中不存在目标值。输出:[-1,-1]输出:[-1,-1]原创 2025-02-21 10:34:41 · 935 阅读 · 0 评论 -
35. 搜索插入位置(LeetCode 热题 100)
如果目标值不存在于数组中,返回它将会被按顺序插入的位置。//写法:ranges::lower_bound(nums,target)-nums.begin();//作用: 返回第一个值不小于val的位置,也就是第一个大于等于val值的位置。//注意:若数组为空/所有数字都<target 返回nums.size()中间值:int mid=left+(right-left)/2;//前提: 用在有序数组(非递减)请必须使用时间复杂度为。原创 2025-02-21 08:52:44 · 343 阅读 · 0 评论 -
41. 缺失的第一个正数(LeetCode 热题 100)
先加个数组代表鸽笼,原数组的值代表鸽子号,原数组值放到对应笼子,从笼子遍历,得到缺少的正整数,再分情况讨论,缺少的要么是1,要么是n+1 ,以及其中. 1以及其中的不需要考虑因为位于鸽笼里面,n+1特殊处理。,请你找出其中没有出现的最小的正整数。并且只使用常数级别额外空间的解决方案。范围 [1,2] 中的数字都在数组中。1 在数组中,但 2 没有。给你一个未排序的整数数组。最小的正数 1 没有出现。请你实现时间复杂度为。原创 2025-02-20 16:08:12 · 310 阅读 · 0 评论 -
(LeetCode 热题 100) 53. 最大子数组和(动态规划&&贪心策略)
请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。连续子数组 [4,-1,2,1] 的和最大,为 6。是数组中的一个连续部分。原创 2025-02-20 15:53:30 · 261 阅读 · 0 评论 -
189. 轮转数组(LeetCode 热题 100)
向右轮转 1 步: [99,-1,-100,3]向右轮转 2 步: [3,99,-1,-100],将数组中的元素向右轮转。原创 2025-02-20 13:51:55 · 350 阅读 · 0 评论 -
238. 除自身以外数组的乘积(LeetCode 热题 100)
然后遍历数组的过程中顺带*前缀积。//指定长度并且初始化 长度为n 初始值为1。之中任意元素的全部前缀元素和后缀的乘积都在。之外其余各元素的乘积。类似 这里是前缀积和后缀积。时间复杂度内完成此题。原创 2025-02-20 12:59:43 · 280 阅读 · 0 评论 -
56. 合并区间 (LeetCode 热题 100)
输入:intervals = [[1,3],[2,6],[8,10],[15,18]]解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].解释:区间 [1,4] 和 [4,5] 可被视为重叠区间。输入:intervals = [[1,4],[4,5]]一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。输出:[[1,6],[8,10],[15,18]]表示若干个区间的集合,其中单个区间为。请你合并所有重叠的区间,并返回。输出:[[1,5]]原创 2025-02-20 12:08:12 · 326 阅读 · 0 评论 -
438. 找到字符串中所有字母异位词(LeetCode 热题 100)
枚举子串s′的右端点,如果发现s′其中一种字母的出现次数大于 p的这种字母的出现次数,则右移s′的左端点。如果发现s′的长度等于p的长度,则说明s′的每种字母的出现次数,和p的每种字母的出现次数都相同,那么s′是p的异位词。起始索引等于 0 的子串是 "cba", 它是 "abc" 的异位词。起始索引等于 0 的子串是 "ab", 它是 "ab" 的异位词。起始索引等于 1 的子串是 "ba", 它是 "ab" 的异位词。起始索引等于 2 的子串是 "ab", 它是 "ab" 的异位词。原创 2025-02-19 11:33:34 · 349 阅读 · 0 评论 -
3. 无重复字符的最长子串(LeetCode 热题 100)
请你找出其中不含有重复字符的。请注意,你的答案必须是。因为无重复字符的最长子串是。因为无重复字符的最长子串是。因为无重复字符的最长子串是。滑动窗口(哈希表实现),所以其长度为 3。,所以其长度为 1。,所以其长度为 3。原创 2025-02-19 10:10:35 · 321 阅读 · 0 评论 -
15. 三数之和(LeetCode 热题 100)
不同的三元组是 [-1,0,1] 和 [-1,-1,2]。体会这道题里面蕴含的《双指针排序算法》的思想。头的i,排在第二的j=i+1,已经由尾向头的k=n-1。注意,输出的顺序和三元组的顺序并不重要。//sort排序这里要这样写。答案中不可以包含重复的三元组。唯一可能的三元组和不为 0。唯一可能的三元组和为 0。,判断是否存在三元组。//这个方法要积累一下。原创 2025-02-18 14:42:58 · 387 阅读 · 0 评论 -
11. 盛最多水的容器(LeetCode 热题 100)
图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。轴共同构成的容器可以容纳最多的水。找出其中的两条线,使得它们与。采用双指针(相反方向)进行扫描。返回容器可以储存的最大水量。原创 2025-02-18 10:26:21 · 208 阅读 · 0 评论 -
283. 移动零
在两个序列里边,一个指针指向其中一个序列,另外一个指针指向另外一个序列,来维护某种次序。同时使用两个相同方向(快慢指针)或者相反方向(对撞指针)的指针进行扫描。双指针指的是在遍历对象的过程中,不是普通的使用单个指针进行访问,而是。(机械内容),这样“大脑”会在后台工作,寻找解决方案。移动到数组的末尾,同时保持非零元素的相对顺序。,必须在不复制数组的情况下原地对数组进行操作。,从而达到相应的目的。,在一个序列里边,用两个指针维护一段区间;,编写一个函数将所有。原创 2025-02-18 09:45:16 · 404 阅读 · 0 评论 -
LeetCode 热题 100(394. 字符串解码)(中等)
你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数。给定一个经过编码的字符串,返回它解码后的字符串。2.思考这题为什么用栈来实现?,表示其中方括号内部的。原创 2025-02-06 13:02:59 · 366 阅读 · 0 评论 -
LeetCode 热题 100 (155. 最小栈)(中等)
是C++11标准中新增的成员函数,专门用于在vector容器中指定位置插入一个新元素。区别于其他插入方式,emplace()每次只插入单个元素,而非多个。//这里用于将栈的类型设计为两个int类型的组合。在C++中被用来组合两个数据值,可以是不同类型。操作,并能在常数时间内检索到最小元素的栈。//这句话要注意一下。原创 2025-02-06 11:12:05 · 307 阅读 · 0 评论 -
LeetCode 热题 100(739. 每日温度)(中等)
天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用。知道是用栈来实现,但是具体过程还没理解透彻,明天继续啃。,表示每天的温度,返回一个数组。原创 2025-02-05 20:42:17 · 131 阅读 · 0 评论 -
LeetCode 热题 100(20. 有效的括号)
2.创建一个栈,遍历原字符串,遇到左括号压入栈中,遇到右括号根据和哈希表查看与栈顶元素是否匹配。2.最后那个 return chars.empty();也算是神来之笔,我觉得。的知识,我现在觉得哈希表是真的好用,不过要完全掌握驾驭这种思想还需要慢慢练习。1.括号匹配的问题,创建一个哈希表用右括号作为索引,左括号为键值.3.注意:若字符串为奇数则可以直接返回false。原创 2025-02-05 13:50:32 · 198 阅读 · 0 评论 -
LeetCode 热题 100 (128. 最长连续序列)
/不同,本题采用前者。//有利于解决问题 不然我还在用if/else判断语句。2.if (nums[i + 1] == nums[i] + 1) //开始时这个if判断提醒我。,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。这是一个很棒很简洁的写法,比我自己用的整体if/else要强。//sort排序的使用,时间复杂度为O(nlogn)//这里解决了数组为空时应该返回0的问题。运算符返回的是参数所占的内存空间大小。是一个函数,用于获取字符串的长度。定一个未排序的整数数组。原创 2025-02-05 11:36:43 · 386 阅读 · 0 评论 -
LeetCode 热题 100 49. 字母异位词分组
6.这道题是师兄给我讲了之后自己再去整理的,但还是一下写不出来代码(思路能听懂)慢慢来 多整理 把每一个之前没有接触到的知识点 全都敲一遍用自己的话写下来。,排序后的字符串作为索引,未排序的字符串作为索引。//对字符串进行排序,这里注意他的写法,前面是ranges::sort(sorted_s)//这两个for循环类似,都是用前面的s/[_,value]代替后面的strs/m(算是一种。是一个在C++中用于容器类的成员函数,主要用于预分配容器所需的内存空间,以提高性能。用于在容器的尾部添加一个新的元素。原创 2025-02-04 21:36:26 · 364 阅读 · 0 评论