最大子数组II
来源:互联网 发布:网络工作 编辑:程序博客网 时间:2024/06/05 16:39
给定一个整数数组,找出两个 不重叠 子数组使得它们的和最大。
每个子数组的数字在数组中的位置应该是连续的。
返回最大的和。
注意事项
子数组最少包含一个数
样例
给出数组 [1, 3, -1, 2, -1, 2]
每个子数组的数字在数组中的位置应该是连续的。
返回最大的和。
注意事项
子数组最少包含一个数
样例
给出数组 [1, 3, -1, 2, -1, 2]
这两个子数组分别为 [1, 3] 和 [2, -1, 2] 或者 [1, 3, -1, 2] 和 [2],它们的最大和都是 7
import java.util.ArrayList;import java.util.Scanner;/** * 给定一个整数数组,找出两个 不重叠 子数组使得它们的和最大。每个子数组的数字在数组中的位置应该是连续的。返回最大的和。 注意事项子数组最少包含一个数样例给出数组 [1, 3, -1, 2, -1, 2]这两个子数组分别为 [1, 3] 和 [2, -1, 2] 或者 [1, 3, -1, 2] 和 [2],它们的最大和都是 7 * * @author Dell * */public class Test42 { public static int maxTwoSubArrays(ArrayList<Integer> nums) { if(nums==null||nums.size()<2) return 0; int left[]=new int[nums.size()]; int right[]=new int[nums.size()]; int result=Integer.MIN_VALUE; int sum1=0; int sum2=0; int max1=Integer.MIN_VALUE; int max2=Integer.MIN_VALUE; for(int i=0;i<nums.size();i++) { sum1=sum1+nums.get(i); if(sum1>max1) { max1=sum1; } left[i]=max1; if(sum1<0) sum1=0; } for(int i=nums.size()-1;i>=0;i--) { sum2=sum2+nums.get(i); if(sum2>max2) { max2=sum2; } right[i]=max2; if(sum2<0) sum2=0; } for(int i=0;i<nums.size()-1;i++) { if(left[i]+right[i+1]>result) { result=left[i]+right[i+1]; } } return result; }public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); ArrayList<Integer> list=new ArrayList<>(); for(int i=0;i<n;i++) { list.add(sc.nextInt()); } System.out.println(maxTwoSubArrays(list)); }}
阅读全文
0 0
- 最大子数组 II
- 最大子数组II
- 最大子数组 II
- LintCode:最大子数组 II
- LintCode-最大子数组 II
- lintcode -- 最大子数组II
- lintcode(42)最大子数组 II
- lintcode 42 最大子数组 II 解析
- [Lintcode]Maximum Subarray II 最大子数组 II
- 42.Maximum Subarray II-最大子数组 II(中等题)
- 求最大子数组
- 求最大子数组
- 子数组和最大
- 求最大子数组
- 最大子数组
- 最大子数组和
- 最大子数组和
- 子数组最大和
- 106-多播地址
- 【11.6】c++ primer plus 课后编程答案
- Android AOP之字节码插桩
- 浅谈md5加密
- 实现生产者-消费者模式
- 最大子数组II
- 【11.7】c++ primer plus 课后编程答案
- hdu 4004
- Java实现-最大子数组1
- mysql 主键自增 但是报主键重复的异常问题探究- Duplicate entry
- AlertDialog创建6种对话框的用法 (对话框,单选对话框,多选对话框,列表对话框,自定义对话框,退出对话框)
- Error setting expression 'orderid' with value ['2', ]
- 阿里云远程连接服务器oracle数据库
- Android 自定义View基础 onMeasure & onLayout