LintCode【简单】44. 最小子数组 。代码及思路
2018-02-01 15:27
393 查看
题目要求:
给定一个整数数组,找到一个具有最小和的子数组。返回其最小和。注意事项
子数组最少包含一个数字
您在真实的面试中是否遇到过这个题?
Yes
样例
给出数组[1, -1, -2, 1],返回 -3
思路:
这个和41,最大子数组如出一辙,这次我写出来了……先遍历一遍,假如所有的数都是大于0的,那么就返回最小的那个数。 第二遍找最小的和。
class Solution {
public:
/*
* @param nums: a list of integers
* @return: A integer indicate the sum of minimum subarray
*/
int minSubArray(vector<int> &nums) {
// write your code here
int i;
int min = nums[0];
for(i = 0; i < nums.size(); i++){
if(nums[i] < min){
min = nums[i];
}
}
if(min >= 0){
return min;
}
int sum = 0;
8de0
for(i = 0; i < nums.size(); i++){
sum += nums[i];
if(sum > 0){
sum = 0;
}
if(sum < min){
min = sum;
}
}
return min;
}
};
相关文章推荐
- LintCode【简单】64. 合并排序数组。代码及思路
- LintCode【简单】100. 删除排序数组中的重复数字。代码及思路
- LintCode【简单】101. 删除排序数组中的重复数字 II。代码及思路
- LintCode【简单】41. 最大子数组 。代码及思路
- LintCode【简单】6. 合并排序数组 II,9. Fizz Buzz 问题。代码及思路 ——【vector用法】
- 【LintCode 简单】44. 最小子数组
- LintCode【简单】50. 数组剔除元素后的乘积 。代码及思路
- LintCode【简单】39. 恢复旋转排序数组 。代码及思路
- LintCode【简单】35. 翻转链表 。代码及思路
- LintCode-44. 最小子数组
- LintCode【简单】82. 落单的数。代码及思路
- LintCode【简单】53. 翻转字符串 。代码及思路
- LintCode【简单】55. 比较字符串 。代码及思路
- LintCode【简单】22. 平面列表 。代码及思路
- LintCode【简单】97. 二叉树的最大深度 。代码及思路
- LintCode【简单】14. 二分查找 。代码及思路
- LintCode【简单】66. 二叉树的前,中,后序遍历。代码及思路
- LintCode 44. 最小子数组
- LintCode【简单】8. 旋转字符串 。代码及思路
- LintCode【简单】46. 主元素 。代码及思路