标签:NPU another res 数组元素 exp imu mat public subarray
Given an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum.
Example:
Input: [-2,1,-3,4,-1,2,1,-5,4], Output: 6 Explanation: [4,-1,2,1] has the largest sum = 6.
Follow up:
If you have figured out the O(n) solution, try coding another solution using the divide and conquer approach, which is more subtle.
Solution1:
class Solution { public int maxSubArray(int[] nums) { int currsum = 0; int res = Integer.MIN_VALUE;//注意不能初始化为0,因为数组元素可能是负数,所以用Integer.MIN_VALUE,如果有需要,也有Integer.MAX_VALUE. for(int num: nums){ currsum = Math.max(currsum+num,num); res = Math.max(res,currsum); } return res; } }
如果当前sum比当前数组元素小,则给当前sum赋值当前数组元素,太巧妙了(不是,是我笨)。
然后上次循环的result和当前的sum比较取大的即可。
标签:NPU another res 数组元素 exp imu mat public subarray
原文地址:https://www.cnblogs.com/wentiliangkaihua/p/10163216.html