`

Minimum Size Subarray Sum

阅读更多
Given an array of n positive integers and a positive integer s, find the minimal length of a subarray of which the sum ≥ s. If there isn't one, return 0 instead.

For example, given the array [2,3,1,2,4,3] and s = 7,
the subarray [4,3] has the minimal length under the problem constraint.

在一个数组中,找到一个长度最小的子数组,使它的和大于或等于给定的数字s。我们采用类似滑动窗口的方法来解决。从第一个元素开始,一直累加到和sum大于或等与s,然后我们记录这时的长度。接下来从开始的元素缩小这个窗口,缩小到sum小于s的时候,窗口向右移动,直到移动到数组末尾结束。代码如下:
public class Solution {
    public int minSubArrayLen(int s, int[] nums) {
        int start = 0;
        int sum = 0;
        int minLen = Integer.MAX_VALUE;
        for(int i = 0; i < nums.length; i++) {
            sum += nums[i];
            if(sum >= s) {
                while(sum >= s) {
                    minLen = Math.min(minLen, i - start + 1);
                    sum -= nums[start];
                    start ++;
                }
            }
        }
        return minLen == Integer.MAX_VALUE ? 0 : minLen;
    }
}
0
2
分享到:
评论

相关推荐

    leetcode530-alogritme-interview:alogritme-面试

    Minimum Size Subarray Sum 209 3 438 76 第二章 查找表相关问题 2-1 set的使用 Intersection of Two Arrays 349 2-2 map的使用 Intersection of Two Arrays II 350 2-3 set和map不同底层实现的区别 349 350 136 242...

    leetcode分类-leetcode:leetcode

    Subarray Sum 滑动窗口需要记录 Leetcode Java Python Leetcode.3 Longest Substring Without Repeating Characters Leetcode.76 Minimum Window Substring Leetcode.438 Find All Anagrams in a String Pattern: ...

    maximum-subarray-sum-:Java中的最大子数组总和

    最大子数组总和maximum subarray sum使用Java语言中的所有复杂度来计算子数组的最大和。 1.O(n ^ 3) 2.O(n ^ 2) 3.O(n)

    leetcode530-Play-with-Algorithms:基本的算法和数据结构

    leetcode 530 Play-with-Algorithms 基本的算法和数据结构 来自liuyubobobo老师的课程 章节 讲解例题 课程练习题 更多扩展练习 ...Subarray Sum 209 3 438 76 713 补充1:更多数组中的问题 [无] [无] 303 121 1

    word源码java-Play-with-Algorithm-Interview-Learningnotes:Play-with-Algori

    word源码java 玩儿转算法面试 - 课程学习笔记 课程的学习笔记。 课程笔记目录 第一章:算法面试到底是什么鬼 第二章:面试中的复杂度分析 第三章:数组中的问题其实最常见 ...Subarray Sum 3-8 在滑动窗口中做记

    动态规划-Subarray Sum Equals K-子数组和为K

    给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的子数组。如果存在该子数组返回true,否则返回false。 #include #include using namespace std; int main() { std::cout &lt;... subset[i

    Subarray_SUM_dynamicprogramming_

    number of subarray whose sum is S using dynamic programming

    LeetCode最全代码

    371 | [Sum of Two Integers](https://leetcode.com/problems/sum-of-two-integers/) | [C++](./C++/sum-of-two-integers.cpp) [Python](./Python/sum-of-two-integers.py) | _O(1)_ | _O(1)_ | Easy | LintCode | ...

    leetcode209-LeetCode209_Minimum_Size_Subarray_Sum:给定一个整型数组和一个数字s,找到数组中最

    LeetCode209_Minimum_Size_Subarray_Sum 给定一个整型数组和一个数字s,找到数组中最短的一个连续子数组, 使得连续子数组的数字和sum&gt;=s,返回这个最短的连续子数组的长度值, 如:给定数组[2,3,1,2,4,3],s=7 答案为...

    matlab开发-subarray

    matlab开发-subarray。从数组中提取子数组。用于功能输出。

    最大子序列和问题 C++ 代码实现

    最大子序列和问题(Maximum Subarray Sum Problem)是求解一个数组中连续子数组的和的最大值的问题。

    largest-subarray-sum-v-000

    最大子数组总和 问题 给定一个整数数组,找到一个具有最大和的序列。 例如,看下面的例子。 let array = [ 1 , - 1 , 5 , 3 , - 7 , 4 , 5 , 6 , - 100 , 4 ] function largestSubarraySum ( array ) { ...

    postgrad-challenge-largest-subarray-sum-nyc-web-career-040119

    最大子数组总和问题给定一个整数数组,找到一个具有最大和的序列。 看一个例子: let array = [ 1 , - 1 , 5 , 3 , - 7 , 4 , 5 , 6 , - 100 , 4 ]function largestSubarraySum ( array ) { // code to write here}...

    python 实现 分治法 (Divide-and-conquer algorithm) 课程设计 代码

    python 实现 分治法 (Divide-and-conquer algorithm) 课程设计 ... Max Subarray Sum Mergesort Peak Power 最近的一对点 凸包 堆算法 堆算法迭代 第 K 阶统计 最大差分对 最大子阵列总和 合并排序 峰

    leetcode打不开-leetcode:leetcode

    Subarray Sum Equals K) Tip3: Knapsack Problem (0/1, unbounded) (#DP 322. Coin Change) Tip4: backtrace or K sum remove duplicates if i != 0 and n == nums[i-1]: (#15. 3Sum) if idx &gt; start and nums[idx] ...

    leetcode双人赛-LeetCode:力码

    Size K (easy) Smallest Subarray with a given sum (easy) Longest Substring with K Distinct Characters (medium) Fruits into Baskets (medium) No-repeat Substring (hard) Longest Substring with Same Le

    leetcode跳跃-leetcode:leetcode一天一次

    Subarray Sum - 无重复字符的最长子串:3. Longest Substring Without Repeating Characters - 最小跳跃步数问题 - 动态规划 + 循环策略优化:45. Jump Game II - 二叉树 前序遍历判断二叉树:98. Validate Binary ...

    leetcodepushfront-leetcode:leetcode问题

    Subarray Sum Equals K 概括 对于总和问题, 一般有两种方法:一种是二指针技能,另一种是使用Map 对于两个指针技能,它仅在数组排序时有效,以便您知道指针将移动到哪个方向。 对于地图技能,数组可以不排序,您...

    leetcode答案-easy_Maximum-Subarray:easy_Maximum-Subarray

    easy_Maximum-Subarray 提交链接 / Submit (You need register/login first before submit.) (在提交前你需要先注册或登录) 题目描述 / Description Given an integer array nums, find the contiguous subarray ...

    subarray:从数组中提取子数组。 对函数输出有用。-matlab开发

    SUBARRAY 应该像第一个例子一样处理所有正常的索引情况(FIND 的输出、范围、未指定的维度)。 唯一的例外是 'end' 关键字,我们必须传入一个字符串并对其进行评估。 我向SUBMAT和SUBMAT_NOEVAL的Garret Euler致敬...

Global site tag (gtag.js) - Google Analytics