题目
https://leetcode-cn.com/problems/maximum-subarray/
AC代码
class Solution {
public:
int maxSubArray(vector<int>& nums) {
/* int sum = 0; 贪心
int max = 0x80000000; //Int最小值
for (int i = 0;i < nums.size();i++){
sum += nums[i];
if(max < sum)
max = sum;
if (sum <0)
{
sum = 0;
}
}
return max;
*/
int res = 0x80000000;
int pre = 0;
for(int i = 0;i < nums.size();i++){
pre = max(pre+nums[i], nums[i]);
//dp f[n] = max(f[n-1]+nums[i], nums[i])
res = max(pre,res);
}
return res;
}
};
notes
- min_int:0x80000000
- max_int:0x7fffffff