标签: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