暴力法
// c++
class Solution {
public:
int maxSubArray(vector<int>& nums)
{
int i, j, max, sum;
max = nums[0];
for(i = 0; i < nums.size(); i++)
{
sum = nums[i];
if(sum > max)
{
max = sum;
}
for(j = i + 1; j < nums.size(); j++)
{
sum += nums[j];
if(sum > max)
{
max = sum;
}
}
}
return max;
}
};
动态规划
public class Solution {
public int MaxSubArray(int[] nums)
{
if(nums.Length == 0)
return 0;
int current = 0, max = nums[0];
foreach(int x in nums)
{
current = Math.Max(current + x, x);
max = Math.Max(current, max);
}
return max;
}
}