美文网首页
数组二:长度最小的子数组

数组二:长度最小的子数组

作者: 程一刀 | 来源:发表于2021-05-13 14:11 被阅读0次

    题目地址: https://leetcode-cn.com/problems/minimum-size-subarray-sum/

    题目描述: 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。
    示例:
    输入:s = 7, nums = [2,3,1,2,4,3] 输出:2 解释:子数组 [4,3] 是该条件下的长度最小的子数组。

    参考代码:

    class Solution1 {
    public:
        int minSubArrayLen(int s, vector<int>& nums) {
            int i = 0;
            int j = 0;
            int sum = 0;
            int result = INT32_MAX;
            
            for (; j<nums.size(); j++) {
                sum = sum + nums[j];
                if (sum >= s) {
    //                int lenth = j-i+1;
    //                result = result > lenth? lenth:result;
                    while (sum>=s) {
                        if (result > (j- i+1)) {
                            result = j - i +1;
                        }
                        sum = sum -nums[i++];
                    }
                }
            }
            if (result == INT32_MAX) {
                result = 0;
            }
            return result;
        }
    };
    
    int main(int argc, const char * argv[]) {
        // insert code here...
        
        
        vector<int> data = {2,3,1,2,4,3};
        Solution1().minSubArrayLen(7, data);
        
        
        return 0;
    }
    
    

    参考链接: https://github.com/youngyangyang04/leetcode-master/blob/master/problems/0209.%E9%95%BF%E5%BA%A6%E6%9C%80%E5%B0%8F%E7%9A%84%E5%AD%90%E6%95%B0%E7%BB%84.md

    相关文章

      网友评论

          本文标题:数组二:长度最小的子数组

          本文链接:https://www.haomeiwen.com/subject/yvsedltx.html