
力扣面试刷题
文章平均质量分 57
engineer致远
这个作者很懒,什么都没留下…
展开
-
加油站——面试经典150题(力扣)
从 3 号加油站(索引为 3 处)出发,可获得 4 升汽油。你无法返回 2 号加油站,因为返程需要消耗 4 升汽油,但是你的油箱只有 3 升汽油。你不能从 0 号或 1 号加油站出发,因为没有足够的汽油可以让你行驶到下一个加油站。开往 3 号加油站,你需要消耗 5 升汽油,正好足够你返回到 3 号加油站。开往 2 号加油站,此时油箱有 6 - 4 + 3 = 5 升汽油。开往 0 号加油站,此时油箱有 4 - 3 + 2 = 3 升汽油。开往 1 号加油站,此时油箱有 3 - 3 + 3 = 3 升汽油。原创 2025-03-20 20:24:38 · 284 阅读 · 0 评论 -
除自身以外数组的乘积——面试经典150题(力扣)
的额外空间复杂度内完成这个题目吗?( 出于对空间复杂度分析的目的,输出数组。:从左到右遍历数组,计算每个位置左边所有元素的乘积,并存储在一个数组。:从右到左遍历数组,计算每个位置右边所有元素的乘积,并存储在一个数组。之中任意元素的全部前缀元素和后缀的乘积都在。数组对应位置相乘,得到最终的结果。之外其余各元素的乘积。时间复杂度内完成此题。原创 2025-03-20 20:21:37 · 449 阅读 · 0 评论 -
O(1) 时间插入、删除和获取随机元素——面试经典150题(力扣)
/ 由于 2 是集合中唯一的数字,getRandom 总是返回 2。// 向集合中插入 2。// 从集合中移除 1 ,返回 true。如果存在,将动态数组中的最后一个元素移动到要删除的元素的位置(覆盖),更新哈希表中的索引,然后删除最后一个元素。// 返回 false ,表示集合中不存在 2。// 2 已在集合中,所以返回 false。:用于存储元素及其在动态数组中的索引,以实现 O(1) 的插入和删除操作。如果不存在,将元素添加到动态数组的末尾,并在哈希表中记录其索引。原创 2025-03-19 21:06:38 · 589 阅读 · 0 评论 -
H指数——面试经典150题(力扣)
给定数组表示研究者总共有 5 篇论文,每篇论文相应的被引用了 3, 0, 6, 1, 5 次。篇论文被引用的次数。计算并返回该研究者的 h。排序后,数组中的元素按引用次数从高到低排列。被引用了 3 次,其余两篇论文每篇被引用。代表“高引用次数” ,一名科研人员的。由于研究者有 3 篇论文每篇。:遍历排序后的数组,找到第一个满足。篇论文的引用次数都大于等于。篇论文被引用次数大于等于。,而后面的论文引用次数小于。表示当前考虑的论文数量,是指他(她)至少发表了。:首先将引用次数数组。原创 2025-03-19 21:01:59 · 381 阅读 · 0 评论 -
跳跃游戏Ⅱ——面试经典150题(力扣)
跳到最后一个位置的最小跳跃数是 2。从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。已经大于或等于数组的最后一个下标时,可以直接返回当前的跳跃次数。:表示当前跳跃的边界,即当前跳跃能够到达的最远位置。向后跳转的最大长度。生成的测试用例可以到达。,表示从当前位置能够到达的最远位置。,说明需要进行一次新的跳跃,更新。:表示当前能够到达的最远位置。处,你可以跳转到任意。达到了当前跳跃的边界。原创 2025-03-17 20:29:53 · 264 阅读 · 0 评论 -
跳跃游戏——面试经典150题(力扣)
无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到达最后一个下标。可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。已经大于或等于数组的最后一个下标,说明可以到达最后一个下标,返回。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标,如果可以,返回。为 0,表示当前能够到达的最远位置。,表示从当前位置能够到达的最远位置。,说明无法到达当前位置,直接返回。3.如果遍历结束后还没有返回。原创 2025-03-17 20:25:01 · 271 阅读 · 0 评论 -
买卖股票的最佳时机——面试经典150题(力扣)
在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回。设计一个算法来计算你所能获取的最大利润。在这种情况下, 没有交易完成, 所以最大利润为 0。初始化为数组的第一个元素。买入这只股票,并选择在。原创 2025-03-13 20:16:43 · 550 阅读 · 0 评论 -
买卖股票的最佳时机Ⅱ——面试经典150题(力扣)
随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6 - 3 = 3。在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。在这种情况下, 交易无法获得正利润,所以不参与交易可以获得最大利润,最大利润为 0。原创 2025-03-13 20:16:27 · 317 阅读 · 0 评论 -
轮转数组——面试经典150题(力扣)
向右轮转 1 步: [99,-1,-100,3]向右轮转 2 步: [3,99,-1,-100]计算旋转后的索引,确保元素正确放置。的深拷贝,避免浅拷贝问题。,将数组中的元素向右轮转。原创 2025-03-12 20:35:29 · 427 阅读 · 0 评论 -
多数元素——面试经典150题(力扣)
尝试设计时间复杂度为 O(n)、空间复杂度为 O(1) 的算法解决此问题。已经在字典中,增加其计数;否则,将其添加到字典中并初始化计数为。你可以假设数组是非空的,并且给定的数组总是存在多数元素。,返回其中的多数元素。多数元素是指在数组中出现次数。统计每个元素的出现次数。的元素,并返回该元素。原创 2025-03-12 20:15:23 · 288 阅读 · 0 评论 -
删除有序数组中的重复项——面试经典150题(力扣)
的前五个元素被修改为 0, 1, 2, 3, 4。不需要考虑数组中超出新长度后面的元素。// 长度正确的期望答案。函数应该返回新的长度 5 , 并且原数组。函数应该返回新的长度 2 ,并且原数组。不需要考虑数组中超出新长度后面的元素。,返回删除后数组的新长度。删除重复出现的元素,使每个元素。的前两个元素被修改为 1, 2。是一个新的唯一元素,将其复制到。,表示第一个元素一定是唯一的。如果数组为空,直接返回。原创 2025-03-11 20:18:30 · 372 阅读 · 0 评论 -
删除有序数组中的重复项Ⅱ——面试经典150题(力扣)
函数应返回新长度 length = 7, 并且原数组的前七个元素被修改为 0, 0, 1, 1, 2, 3, 3。函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3。方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。是一个新的元素,或者该元素还没有出现两次,将其复制到。删除重复出现的元素,使得出现次数超过两次的元素。// 根据你的函数返回的长度, 它会打印出数组中。,返回删除后数组的新长度。p1 就是新数组的长度。,直接返回数组的长度。原创 2025-03-11 20:18:50 · 659 阅读 · 0 评论 -
合并两个有序数组
nums1[:] = rnum是原地修改nums1,符合题目要求。nums1 = rnum是创建了一个新的列表对象,不符合题目要求。因此,第一个代码片段是正确的,而第二个代码片段不符合题目的要求。原创 2025-03-07 17:01:57 · 507 阅读 · 0 评论