lintcode(42)最大子数组 II
来源:互联网 发布:淘宝店铺策划书童装 编辑:程序博客网 时间:2024/05/04 12:35
描述:
给定一个整数数组,找出两个 不重叠 子数组使得它们的和最大。
每个子数组的数字在数组中的位置应该是连续的。
返回最大的和。
样例:
给出数组 [1, 3, -1, 2, -1, 2]
这两个子数组分别为 [1, 3]
和 [2, -1, 2]
或者 [1, 3, -1, 2]
和 [2]
,它们的最大和都是 7
思路:
将数组划分成两个子数组,分别寻找最大子数组
public class Solution { /** * @param nums: A list of integers * @return: An integer denotes the sum of max two non-overlapping subarrays * 划分数组分别找最大值 */ public int maxTwoSubArrays(ArrayList<Integer> nums) { // write your code if(nums.size() == 2){ return nums.get(0) + nums.get(1); } int ret = Integer.MIN_VALUE; for(int i = 0;i<nums.size() - 1;i++){ int left = max(nums , 0 , i); int right = max(nums , i + 1 , nums.size() - 1); int temp = left + right; ret = ret<temp?temp:ret; } return ret; } public int max(ArrayList<Integer> nums , int start , int end){ if(start == end){ return nums.get(start); } int sum = 0; int result = nums.get(start); for(int i = start;i<=end;i++){ sum += nums.get(i); if(sum > result){ result = sum; }else if(sum < 0){ sum = 0; } } return result; }}
0 0
- lintcode(42)最大子数组 II
- lintcode 42 最大子数组 II 解析
- LintCode:最大子数组 II
- LintCode-最大子数组 II
- lintcode -- 最大子数组II
- [Lintcode]Maximum Subarray II 最大子数组 II
- LintCode: 最大子数组
- lintcode ----最大子数组
- lintcode,最大子数组
- 【LintCode】最大子数组
- Lintcode最大子数组
- LintCode 最大子数组
- lintcode最大子数组
- Lintcode:最大子数组
- 【lintcode】最大子数组
- LintCode 42 最大子数组 I
- LintCode-最大子数组差
- LintCode-最大子数组 III
- SQL Server中开发常用的数据类型
- 每日一句:Move On
- 情愫有感
- JAVA_IO_文件读取_细节
- 配置redis外网可访问,并只允许指定的ip可访问redis
- lintcode(42)最大子数组 II
- 一个单表查询的示例
- 集训-蚂蚁聚会(树形DP)
- MyBatis表的字段与实体类的属性不相符
- Request 数据到handler method 参数数据的绑定所用到的注解及使用
- 一个工具实现Linux与Windows文件系统的传输
- ASPLOS 2017体会
- Arcgis Server发布小结
- 技术驱动高效运维,提升业务效率