LeetCode -- 904 -- Fruit into Baskets

又刷起来啦。
不打算贴具体的实现了。
但还是写一下心得吧。

LeetCode 904 Fruit into Baskets

题号大的题,果然比较新,变化多端。还是消化了一下,才能够把题目抽象出来。
总之是说,给一个数组,找出最多连续多少个element, 只包含两个不同的数字。

先是暴力的话,O(n*n)肯定能算出来,但是要优化。这个问题又不会涉及到二分法,再加上是数组问题,所以复杂度上只能优化成O(n)。也就是说只能扫一遍/两遍数组。


一开始没思路,后来想到能不能用DP,就是根据前一个的最大值,推断出加了一个新数之后的最大值。后来觉得不可行。

然后想到,一定要记录下来目前为止的两个不同的数字是什么,这样才能判断加了一个新的数字之后,是不是新的数字。
进而又想到,还要记录下来这两个不同的数字,第一次出现的位置。分别是什么。

其实到这里就比较接近了,可能太久没啥题的缘故,忘记了pointer这个东西。

希望下次看到数组可以立刻想到利用指针求解。

猜你喜欢

转载自blog.csdn.net/sophia_tone2w/article/details/88990807
今日推荐