publicintmaxSubArray(int[] nums){ //初始化连续子数组的最大和,当前子数组的最大和。 int max = nums[0]; int sum = nums[0]; for(int i=1;i<nums.length;++i){ //尝试向当前子数组后加入 nums[i],如果当前子数组和为负, //则以当前元素作为第一个元素开始重新计算连续子数组。 sum = Math.max(nums[i],sum+nums[i]); //取最大值。 max = Math.max(max,sum); } return max; }