所谓滑动窗口就是不断移动子序列的起始位置和终止位置,从而得到我们想要的结果。
Integer.MAX_VALUE表示int数据类型的最大取值数:2147483647
Integer.MIN_VALUE表示int数据类型的最小取值数:-2147483648
力扣-滑动窗口-904:找出至多包含两种元素的最长子串,返回其长度
class Solution {
public int totalFruit(int[] fruits) {
int ans = 0, same = 0;
int[] cnt = new int[fruits.length + 10];
for(int i = 0, j = 0;j < fruits.length; j ++){
if( ++ cnt[fruits[j]] == 1) same ++;//两个if语句都是要执行的!!!
while(same > 2){
if( -- cnt[fruits[i ++]] == 0) same --;
}
ans = Math.max(ans, j - i + 1);
}
return ans;
}
}
标签:cnt,01,17,int,fruits,same,2024,++,ans
From: https://www.cnblogs.com/wusuoweiju/p/17971509