Middle-题目87:209. Minimum Size Subarray Sum

原创 2016年05月31日 17:21:03

题目原文:
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,求出使得和值≥s的最小长度。
题目分析:
使用两个指针start和end,end向后移到sum>s,然后start向右移,直到sum<s,并更新minLength值。End指针移动到结尾时循环,返回minLength.(源自西施豆腐渣博客
源码:(language:java)

public class Solution {
    public int minSubArrayLen(int s, int[] nums) {
        int start = 0;
        int end = 0;

        int sum = 0;
        int min = Integer.MAX_VALUE;

        while(start<nums.length && end<nums.length) {
            while(sum<s && end<nums.length) {
                sum += nums[end++];
            }
            while(sum>=s && start<=end) {
                min = Math.min(min, end-start);
                sum -= nums[start++];
            }
        }
        return min==Integer.MAX_VALUE ? 0 : min;
    }
}

成绩:
1ms,beats 18.63%,众数1ms,81.30%
Cmershen的碎碎念:
这道题一开始想到的是排序后再从后向前查找(因为数字大才有可能序列短嘛。),这个解法显然是错误的,因为会打乱原顺序,但提交时竟然只有2个test case没通过,且暴力枚举之,竟超越了100%……

版权声明:完整版Leetcode题解请出门左转https://github.com/cmershen1/leetcode/tree/master/docs

相关文章推荐

61. Rotate List\80. Remove Duplicates from Sorted Array II\209. Minimum Size Subarray Sum

Rotate List 题目描述 代码实现 Remove Duplicates from Sorted Array II 题目描述 代码实现 Minimum Size Subarray Sum 题目描...

209. Minimum Size Subarray Sum

题意: 给定一个序列和一个正整数s,要求找出一个最短的子序列,它的各位之和大于等于正整数s,并返回这个子序列的长度。 解题思路: 要找出符合特定要求的一个子序列,可以将问题拆分。首先子序列的首位可以是...

leetcode209-Minimum Size Subarray Sum(最小长度子数组和)

问题描述:Given an array of n positive integers and a positive integer s, find the minimal length of a su...

LeetCode 209. Minimum Size Subarray Sum (O(n)实现)

动态规划: len[i]:  - 若存在begin使得sum(nums.begin()+begin, nums.begin()+i+1)>=s且sum(nums.begin()+begin-1, nu...

【LeetCode】209. Minimum Size Subarray Sum

题目Given an array of n positive integers and a positive integer s, find the minimal length of a subar...

Leetcode 209 Minimum Size Subarray Sum

给出一个正整数数组,以及一个正整数s,找到最短的子数组且该子数组的和不小于s。如果不存在这样的子数组,返回0.

Leetcode 209. Minimum Size Subarray Sum

Given an array of n positive integers and a positive integer s, find the minimal length of a contigu...

Leetcode——209. Minimum Size Subarray Sum

题目: Given an array of n positive integers and a positive integer s, find the minimal length of a co...

Leetcode 209 - Minimum Size Subarray Sum(二分 or 双指针)

题意给一个数组a[]和一个数s,要求在a里面找到一个长度最短的连续子序列,并且子序列的和大于等于s。思路算法1前缀和 + 二分。时间复杂度O(nlogn)O(nlogn)。我们先维护一个前缀和ss,然...
  • Lzedo
  • Lzedo
  • 2017-02-12 20:35
  • 117

Minimum Size Subarray Sum - LeetCode 209

题目描述: Given an array of n positive integers and a positive integer s, find the minimal length of a ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)