注意:有的题目虽然上一组结束了,但是新的一组仍然可以从上一组的最后一个数字为开头,这时候就需要将 i = i - 1
代码模板
模板1:有进入条件模板
//数组长度int n = nums.length;//结果int ans =0;int i =0;while(i < n){//进入条件if(nums[i]不满足条件){
i++;continue;//不满足跳过}int start = i;//记录这一组的开始位置
i++;//开始位置已经满足要求,从下一个位置开始判断while(i < n &&...)){//循环条件
i++;}//从 start 到 i-1 是满足题目要求的子数组,统计结果
ans =...;//下一组从 i 开始,无需 i += 1}return ans;
模板2:无进入条件模板
//数组长度int n = nums.length;//结果int ans =0;int i =0;while(i < n){//无进入条件,直接分组循环int start = i;//记录这一组的开始位置
i++;//开始位置已经满足要求,从下一个位置开始判断while(i < n &&...)){//循环条件
i++;}//从 start 到 i-1 是满足题目要求的子数组,统计结果
ans =...;//下一组从 i 开始,无需 i += 1}return ans;