task4:最大子序和
程序员文章站
2022-07-14 23:09:19
...
题目
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
代码
class Solution {public: int maxSubArray(vector<int>& nums) {
if(nums.empty())
return 0;//如果是空数组,则返回0
int presum = nums[0];//persum用来当前的和,maxsum用来记录最大的和
int maxsum = presum;
for(int i = 1; i < nums.size(); i++) {
presum = presum > 0 ? presum += nums[i] : nums[i]; //如果persum<0,则将nums[i]赋值给persum maxsum = max(maxsum,presum); }
return maxsum; }
};
执行结果
思路
该题要找到连续子数组的最大和,可用动态寻找,即定义两个变量presum、maxsum,一个动态选择的做加法,一个记录最大值
上一篇: python Task4:列表(1天)