LeetCode.52 Maximum Subarray

xiaoxiao2021-02-28  111

参考Ch_02最大子序列问题

题目:

Find the contiguous subarray within an array (containing at least one number) which has the largest sum.

For example, given the array [-2,1,-3,4,-1,2,1,-5,4], the contiguous subarray [4,-1,2,1] has the largest sum = 6.

分析:

class Solution { public int maxSubArray(int[] nums) { //该题使用聪明算法实现,不同的是,该题目并未要求返回值最小为0,所以maxSum不能初始化为0 //使用0x7fffffff表示最大值Inter的32位 int maxSum=-0x7fffffff; int thisSum=0; for(int i=0;i<nums.length;i++){ thisSum+=nums[i]; if(thisSum>maxSum){ maxSum=thisSum; } //如果thisSum<0说明之前和为负数,重新置0 if(thisSum<0){//因为并未要求最小值为0,所以不能使用else if(thisSum<0) thisSum=0; } } return maxSum; } }

转载请注明原文地址: https://www.6miu.com/read-68621.html

最新回复(0)