力扣面试经典150道
叫我点子王就行了
这个作者很懒,什么都没留下…
展开
-
力扣刷题——面试经典150道—9.跳跃游戏(题目55)
注意:不是跳跃下标的长度,而是可以跳跃的最大长度,即下标为3,可以跳跃1,2,3中的任何一个。想法二:改进一下,采用类似于动态规划的思想,计算最远距离。想法一:贪心算法遍历。原创 2024-01-22 16:17:43 · 370 阅读 · 0 评论 -
力扣刷题——面试经典150道—8.买卖股票的最佳时机Ⅱ(题目122)
dp[i][1][1]=max(dp[i-1][1], dp[i-1][0]-price[i])//昨天买入或今天买入。dp[i][1][0]=max(dp[i-1][0], dp[i-1][1]+price[i])//昨天卖出或今天卖出。修改状态dp[天数][持有股票数]与上一题的区别在于不限制交易次数。原创 2024-01-20 13:28:59 · 370 阅读 · 0 评论 -
力扣刷题——面试经典150道—7.买卖股票的最佳时机(题目121)
dp[i][1][0]=max(dp[i-1][1][0], dp[i-1][1][1]+price[i])//昨天卖出或今天卖出。dp[i][1][1]=max(dp[i-1][1][1], -price[i])//昨天买入或今天买入。使用贪心算法(找到最低点买入,在之后的最高点卖出)的话,对于特殊的价格波动(5,9,1,2,3)会出错。使用三维数组dp[天数][交易次数][持股个数]使用暴力求解的话会超出时间。原创 2024-01-20 13:05:06 · 369 阅读 · 0 评论 -
力扣刷题——面试经典150道—6.轮转数组(题目189)
1.k可能大于数组长度,需要取模。使用数组翻转,首先将整体翻转,再分成两部分各自翻转。要求:空间复杂度为o(1)原创 2024-01-13 15:50:33 · 347 阅读 · 1 评论 -
力扣刷题——面试经典150道—5.多数元素(题目169)
多数元素只可能存在一个,使用一个计数器来存储元素出现个数,不同时减1,相同时加1,计数器为0时存储当前位置数字,并计数为1。原创 2024-01-13 14:59:08 · 413 阅读 · 1 评论 -
力扣刷题——面试经典150道—4.删除有序数组中的重复项Ⅱ(题目80)
例如111223,过程中会判断到1重复,变成112223,不进行特殊判断的话会删除一个2。注意:当只向前移动一位时,可能会造成出现两次变成出现三次。具体操作为出现重复的个数为1时需要判断前三个数。是上一题的复杂版,需要比较两个数字。原创 2024-01-13 14:51:13 · 405 阅读 · 1 评论 -
力扣刷题——面试经典150道—3.删除有序数组中的重复项(题目26)
耗时是12ms,使用题解的双指针的方法提交后也是12ms。使用一个值来记录重复数个数,将不重复的向前移动一定位置。非严格递增即存在重复数的递增数组,要求删除重复数。原创 2024-01-13 14:29:55 · 394 阅读 · 1 评论 -
力扣刷题——面试经典150道—2.移除元素(题目27)
选择一个当做遍历指针,一个当做数组末尾指针,如果等于val,将末尾元素放到需要删除的数组位置,然后将两个指针都减1,进行循环。需要注意,返回时数组末尾指针大小需要+1。原创 2024-01-11 16:08:37 · 395 阅读 · 1 评论 -
力扣刷题——面试经典150道—1.合并两个有序数组(题目88)
本来打算将nums1复制到新数组中后排序,但复制数组最低需要遍历,时间复杂度太高。通过使用nums1后半部分的空闲位置来进行逆排序,使得时间复杂度为m+n。2、当一数组中存在比二数组中最小的更小的数字时,不需要管。1、当m为0时,直接复制数组,然后返回。但比较方法存在一些问题,使得运行时间为8ms。题目要求:时间复杂度m+n。原创 2024-01-11 15:59:29 · 511 阅读 · 1 评论