LintCode 42. 最大子数组 II

原创 2018年04月16日 08:55:16
给定一个整数数组,找出两个 不重叠 子数组使得它们的和最大。
每个子数组的数字在数组中的位置应该是连续的。

返回最大的和。

public class Solution {
   /*
    * @param nums: A list of integers
    * @return: An integer denotes the sum of max two non-overlapping subarrays
    */
   public int maxTwoSubArrays(List<Integer> nums) {
      // write your code here
      int[] leftArray = new int[nums.size()];
      int max = Integer.MIN_VALUE;
      int tmp = 0;
      for (int i = 0; i < nums.size() - 1; i++) {
         if (tmp <= 0) {
            tmp = nums.get(i);
         } else {
            tmp += nums.get(i);
         }
         if (tmp > max) {
            max = tmp;
         }
         leftArray[i] = max;
      }

      int[] rightArray = new int[nums.size()];
      max = Integer.MIN_VALUE;
      tmp = 0;
      for (int i = nums.size() - 1; i > 0; i--) {
         if (tmp <= 0) {
            tmp = nums.get(i);
         } else {
            tmp += nums.get(i);
         }
         if (tmp > max) {
            max = tmp;
         }
         rightArray[i] = max;
      }

      int result = Integer.MIN_VALUE;
      for (int i = 0; i < nums.size() - 1; i++) {
         result = (result > leftArray[i] + rightArray[i+1]) ? result : leftArray[i] + rightArray[i+1];
      }
      return result;
   }
}

Microsoft Agent技术在Delphi中的应用

解放军合肥炮兵学院 张建军 中保财险安徽省铜陵市分公司 韩莹 ---- Microsoft Agent是微软公司于1997年9月发布的一项代理软件开发技术,而后被集成到Internet Explore...
  • deardelphi
  • deardelphi
  • 2000-08-26 10:06:00
  • 689

lintcode 42 最大子数组 II 解析

题目:给定一个整数数组,找出两个 不重叠 子数组使得它们的和最大。 每个子数组的数字在数组中的位置应该是连续的。 创建两个长度也为nums.size()的数组。含义为从左自右、从右自左分别遍历 !...
  • qq_23348071
  • qq_23348071
  • 2017-12-02 22:02:49
  • 204

LintCode-最大子数组 II

题目: 给定一个整数数组,找出两个 不重叠 子数组使得它们的和最大。 每个子数组的数字在数组中的位置应该是连续的。 返回最大的和。 分析: 1.求一个最小的分割数组,然后在左右边...
  • qq_29726609
  • qq_29726609
  • 2017-07-15 21:28:43
  • 604

Lintcode42 Maximum Subarray II solution 题解

【题目描述】 Given an array of integers, find two non-overlapping subarrays which have the largest su...
  • xuxu_ban
  • xuxu_ban
  • 2017-05-05 16:19:28
  • 254

LintCode 最大子数组(3种方法)

给定一个整数数组,找到一个具有最大和的子数组,返回其最大和。 样例 给出数组[−2,2,−3,4,−1,2,1,−5,3],符合要求的子数组为[4,−1,2,1],其最大和为6 ...
  • sinat_30440627
  • sinat_30440627
  • 2017-02-08 16:22:39
  • 4352

LintCode-最大子数组差

给定一个整数数组,找出两个不重叠的子数组A和B,使两个子数组和的差的绝对值|SUM(A) - SUM(B)|最大。 返回这个最大的差值。 您在真实的面试中是否遇到过这个题?  Yes...
  • wangyuquanliuli
  • wangyuquanliuli
  • 2015-06-26 19:42:33
  • 2604

接雨水 lintcode

这道题可以有两种做法。 做法一:扫两遍。 对某个值A[i]来说,能trapped的最多的water取决于在i之前左边的最高值和在i右边的最高的值,然后取当中较小的一个。 所以可以根据上面的分...
  • u014470581
  • u014470581
  • 2016-10-13 17:09:01
  • 373

[Lintcode]Maximum Subarray III最大子数组 III

Given an array of integers and a number k, find k non-overlapping subarrays which have the largest...
  • jc69186918
  • jc69186918
  • 2017-02-08 14:21:49
  • 691

LintCode 41 最大子数组

题目:searchMatrix要求:给定一个整数数组,找到一个具有最大和的子数组,返回其最大和。 注意事项 子数组最少包含一个数样例:给出数组[−2,2,−3,4,−1,2,1,−5,3],符合...
  • linglian0522
  • linglian0522
  • 2017-04-25 09:39:20
  • 461

[LintCode]41.最大子数组

给定一个整数数组,找到一个具有最大和的子数组,返回其最大和。 样例 给出数组[−2,2,−3,4,−1,2,1,−5,3],符合要求的子数组为[4,−1,2,1],其最大和为6 思路:将...
  • zwy1258432405
  • zwy1258432405
  • 2017-08-18 12:26:32
  • 328
收藏助手
不良信息举报
您举报文章:LintCode 42. 最大子数组 II
举报原因:
原因补充:

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