- 博客(26)
- 收藏
- 关注
原创 209.长度最小的子数组
滑动窗口法,右端只要不碰到边界就一直走,每走一步考虑一下左侧能追到的最近距离,sum表示中间数的和,大了就将左边的向右移,小了就将右边的向右移。
2023-05-30 21:07:46 86
原创 122.买卖股票的最佳时机II
设置两个int类型,一个存储手中股票的最低股价low,一个存储手中股票的最高股价high,遍历第1到第n-1天,每当第二天股票下跌时就迅速将利益结算,用high-low表示这支股票的最大收益,然后买第二天的股票,low和high都置为第二天的股价,随着时间推移,股票股价越来越高,low不动,high值越来越高,直到再次出现下跌的时候,迅速结算。贪心在于,一下跌就结算,不再等。如果再等,收益一定会比直接结算更低,这是可以证明的,细想一下就能明白。
2023-05-28 15:16:00 67
原创 189.轮转数组
本题有个小陷阱:k有可能大于数组长度,那我们就可以当作转了len/k圈,还剩len%k位没有转完。因此一开始就把k替换成k%len即可。方法一:把尾部k个数保存下来,把前n-k个数向后移,再把k个数放到前面去,非常朴素的做法,空间复杂度O(k),时间复杂度O(n2)因为这个一维数组的有趣特性,所以可以这么做,不知道二维的数组旋转是不是也可以?总体翻转,再翻转前k个值,再翻转n-k个值,相当于向右旋转了k个值。空间复杂度O(1),时间复杂度O(2n)即为O(n)
2023-05-28 14:55:52 81
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人