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 }