输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。
要求时间复杂度为O(n)。
public class Solution {
public int MaxSubArray(int[] nums) {
int pre=0;
int ans=nums[0];
foreach(var t in nums)
{
pre=Math.Max(pre+t,t);//遍历整个数组,不断使元素相加选出最大段的和
ans=Math.Max(ans,pre);
}
return ans;
}
}