题解 | 长度最小的连续子数组

长度最小的连续子数组

https://www.nowcoder.com/practice/10dd5f8c5d984aa3bd69788d86aaef23

class Solution {
public:
  //使用前缀法,处理数组,保存前面数包括自己的和
    int minSubarray(vector<int>& nums, int target) {
        for(int i=1; i<nums.size(); ++i){
            nums[i] = nums[i-1] + nums[i];
        }
        nums.insert(nums.begin(), 0); //在前面添加0,方便处理

        int len = 1; //从长度为1开始检测;
        while( len <= nums.size() ){
            for(int i=0; i+len < nums.size(); ++i ){
                if( nums[i+len] - nums[i] >= target ){
                    return len;
                }
            }
            ++len;
        }

        return 0;
    }
};

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务