讨论/题目交流/LeetCode209题,自己的一个思路,感觉一点问题没有,但是提交了15个测试用例,通过了13个,给的错误答案里面有几百个值,无法debug,求大神帮我看一下代码/
LeetCode209题,自己的一个思路,感觉一点问题没有,但是提交了15个测试用例,通过了13个,给的错误答案里面有几百个值,无法debug,求大神帮我看一下代码

class Solution {
public int minSubArrayLen(int s, int[] nums) {
int sum=0;
for(int i=0;i<nums.length;i++){
sum+=nums[i];
}
if(sum<s)return 0;
int left=0;
int right=nums.length-1;
int n=nums.length;
while(left<=right){
if(nums[left]<=nums[right]){

            sum=sum-nums[left];
            left++;
            n--;
        }else{
            
            sum=sum-nums[right];
            right--;
            n--;
        }
        if(sum<s)return(n+1);
    }
    return n;
}

}

展开讨论
共 1 个讨论

你这种每次减去边界最小的"贪心做法"不是正确的,假设大的都在两边,小的在中间呢,你上来就把大的先一个一个剔除了,考虑下面这组数据
4
[2,2,1,1,1,2]
你的输出:3
正确答案:2