//右指针遍历到数组尾 while (right < n) { //增加当前右指针对应的数值 sum += nums[right]; //当在该区间内 sum 超出定义范围 while (sum > k) { //先将左指针指向的数值减去 sum -= nums[left]; //左指针右移 left++; } //到 while 结束时,我们找到了一个符合题意要求的 子数组/子串 res = Math.max(res, right - left + 1); //移动右指针,去探索下一个区间 right++; } return res; } }