热门

最新

红包

立Flag

投票

同城

我的

发布
wzh18907434168
Eliooooooo
2 年前
truewzh18907434168

每日一题
904. 水果成篮

解法一:滑动窗口

时间复杂度:O(n)
空间复杂度:O(1)
class Solution {
public:
int totalFruit(vector<int>& fruits) {
int box1 = -1, box2 = -1, sz1 = 0, sz2 = 0, len = 0;
for(int begin = 0, end = 0; end < fruits.size(); )
{
//1.进窗口
if(sz1 == 0 || fruits[end] == box1)
{
sz1++;
box1 = fruits[end++];
}
else if(sz2 == 0 || fruits[end] == box2)
{
sz2++;
box2 = fruits[end++];
}
else
{
//2.判断
while(sz1 && sz2)
{
//3.出窗口
if(fruits[begin] == box1) sz1--;
if(fruits[begin] == box2) sz2--;
begin++;
}
}
//4.更新
len = max(len, sz1 + sz2);
}
return len;
}
};

水果成篮

每日学习打卡
CSDN App 扫码分享
分享
评论
2
打赏
  • 复制链接
  • 举报
下一条:
不同风格的装配式房屋,你喜欢哪种?来自社区: 灌水乐园, 频道: 交流讨论, https://bbs.csdn.net/topics/617087520
立即登录