LintCode_44 最小子数组

题目

给定一个整数数组,找到一个具有最小和的子数组。返回其最小和。

注意事项

子数组最少包含一个数字

样例

给出数组[1, -1, -2, 1],返回 -3

思路

动态规划解决

C++代码

 1 int minSubArray(vector<int> nums) {
 2         // write your code here
 3         int s, min;
 4         int len = nums.size();
 5         if(len == 0) return 0;
 6         int i;
 7         min = nums[0];
 8         s = nums[0];
 9         for(i = 1; i < len; ++i)
10         {
11             if(s > 0) s = nums[i];
12             else s += nums[i];
13             min = min > s ? s : min;
14         }
15         return min;
16 }

时间: 2024-07-29 08:24:18

LintCode_44 最小子数组的相关文章

lintcode.44 最小子数组

最小子数组 描述 笔记 数据 评测 给定一个整数数组,找到一个具有最小和的子数组.返回其最小和. 注意事项 子数组最少包含一个数字 您在真实的面试中是否遇到过这个题? Yes 哪家公司问你的这个题? Airbnb Amazon LinkedIn Cryptic Studios Dropbox Apple Epic Systems TinyCo Yelp Hedvig Zenefits Uber Snapchat Yahoo Microsoft Bloomberg Facebook Google

lintcode 中等题:Minimum Size Subarray 和大于S的最小子数组

题目 和大于S的最小子数组 给定一个由 n 个整数组成的数组和一个正整数 s ,请找出该数组中满足其和 ≥ s 的最小长度子数组.如果无解,则返回 -1. 样例 给定数组 [2,3,1,2,4,3] 和 s = 7, 子数组 [4,3] 是该条件下的最小长度子数组. 挑战 如果你已经完成了O(n)时间复杂度的编程,请再试试 O(n log n)时间复杂度. 解题 定义两个指针,slow,fast,以先后速度向右走 fast先找到第一个是的sum>s的值 根据fast和slow计算当前子数组的长度

最大子数组(最小子数组)

Given an array of integers, find a contiguous subarray which has the largest sum. Return the sum of the subarray. 给出数组[−2,2,−3,4,−1,2,1,−5,3],符合要求的子数组为[4,−1,2,1],其最大和为6 1.暴力 O(n2) public int maxSubArray(int[] nums) { if (nums == null || nums.length =

求最小子数组之二维篇

一.设计思路 求出该二维数组的所有子数组,先确定一个位置为起点,然后向右下方依次以此起点为始的所有子数组, 图1—顺序求子数组 具体如上图1,顺序求出子数组,然后和max值相比较,若比max值大,则将该子数组和赋给max,并保存其位置,对该子数组的位置,只需要保存其首尾位置即可, 图2—保存子数组位置 如上图2所示,得到了最大子数组和与其位置,输出即可. 二.代码 1 package zishuzu; 2 3 import java.util.*; 4 5 public class zuixia

Windows10系统如何安装Microsoft Visual Studio 2015及最小子数组和求解

一.Windows10系统如何安装Microsoft Visual Studio 2015. 1.首先到Visual Studio官方网站(https://www.visualstudio.com/vs/)或者到我给出的下载衔接上下载各个版本的vs2015,我个人推荐下载Visual Studio Community版本,因为该版本是免费的,而且在功能上对于学习者而言已经足够了. 2.把下载的ISO离线安装镜像使用解压工具解压后,打开文件vs_community.exe后,会弹出窗口提示安装,安

LintCode Python 简单级题目 最小子数组和、最大子数组和

题目1 最小子数组 描述: 给定一个整数数组,找到一个具有最小和的子数组.返回其最小和. 注意事项 子数组最少包含一个数字 您在真实的面试中是否遇到过这个题? Yes 样例 给出数组[1, -1, -2, 1],返回 -3 标签 LintCode 版权所有 子数组 贪心 数组 题目2 最大子数组 描述: 给定一个整数数组,找到一个具有最大和的子数组,返回其最大和. 注意事项 子数组最少包含一个数 您在真实的面试中是否遇到过这个题? Yes 样例 给出数组[?2,2,?3,4,?1,2,1,?5,

[容易]最小子数组

题目来源:http://www.lintcode.com/zh-cn/problem/minimum-subarray/ 解法同最大子数组: 令currSum为当前最小子数组的和,minSum为最后要返回的最小子数组的和.a[j]有两种选择,要么放入前面的子数组,要么作为新子数组的第一个元素.如果currSum加上当前元素a[j]后不大于a[j],则令currSum再加上a[j].否则currSum重新赋值为a[j].同时,当currSum < minSum,则更新minSum = currSu

LintCode-和大于S的最小子数组

给定一个由 n 个整数组成的数组和一个正整数 s ,请找出该数组中满足其和 ≥ s 的最小长度子数组.如果无解,则返回 -1. 您在真实的面试中是否遇到过这个题? Yes 样例 给定数组 [2,3,1,2,4,3] 和 s = 7, 子数组 [4,3] 是该条件下的最小长度子数组. 挑战 如果你已经完成了O(n)时间复杂度的编程,请再试试 O(n log n)时间复杂度. 标签 Expand 相关题目 Expand 分析:数组的题目一般都是前缀和阿(对应O(nlgn)的解法),或者就是两根指针同

LeetCode OJ: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