53. Maximum Subarray

特别重要的一题,主要就是动规全局最有和局部最优的概念。

local[i] = Math.max(nums[i], local + nums[i])

global[i] = Math.max(global[i-1], local[i])

 

 1     public int maxSubArray(int[] nums) {
 2         if(nums == null || nums.length == 0) {
 3             return 0;
 4         }
 5         int global = nums[0];
 6         int local = nums[0];
 7         for(int i = 1; i < nums.length; i++) {
 8             local = Math.max(nums[i], local + nums[i]);
 9             global = Math.max(global, local);
10         }
11         return global;
12     }

 

posted @ 2016-03-03 09:59  warmland  阅读(109)  评论(0编辑  收藏  举报