讨论/面试考题/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;
    }
}
展开讨论
我要拿offer发起于 2020-01-28

你这么做是默认数组基本有序了,因此也很容易举出反例
1 1 5 5 5 10 1 1 1 1 1 10
s = 25
按你的代码最后筛出来的是 10 1 1 1 1 1 10,但显然5 5 5 10 更短

展开全部 2 讨论