#include "iostream"
#include "vector"
using namespace std;
class Solution {
// 得到一个最大的负数
int isAllLow(vector<int> &nums){
int max=nums[0];
for (int i = 1; i < nums.size(); ++i) {
if(max<nums[i]){
max=nums[i];
}
}
return max;
}
public:
// 求最大子序列
int maxSubArray(vector<int>& nums) {
int sum=0;
int maxsum=this->isAllLow(nums);
// 如果是一个最大的负数,就直接返回这个最大的负数
if(maxsum<0){
return maxsum;
}
// 遍历整个数组
for(int i=0;i<nums.size();i++){
// 加上这个数
sum+=nums[i];
// 如果这个数大于maxsum,就更新这个maxsum
if(sum>maxsum){
maxsum=sum;
// 如果sum是一个小于0的数,就舍去这个和
}else if(sum<0){
sum=0;
}
}
return maxsum;
}
};
int main(){
return 0;
}文章来源地址https://www.toymoban.com/news/detail-468192.html
文章来源:https://www.toymoban.com/news/detail-468192.html
到了这里,关于C++ 求最大子序列和(贪心算法)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!