刷代码随想录有感(83):贪心算法——最大子数组和

题干:

代码:

cpp 复制代码
class Solution {
public:
    int maxSubArray(vector<int>& nums) {
        int res = INT_MIN;
        int count = 0;
        for(int i = 0; i < nums.size(); i++){
            count += nums[i];
            if(count > res) res = count;
            if(count <= 0)count = 0;
        }
        return res;
    }
};

局部最优:只要连续和大于0就一直遍历加下去,直到为0或小于0时再以下一个数为起点往下加。而令count=0实现了这一要求。

最大子序列可以包含负数,只要连续和是正数就行了。

相关推荐
LeetCode天天刷6 分钟前
【软件认证】比特翻转【滑动窗口】
算法
源代码•宸8 分钟前
Leetcode—1123. 最深叶节点的最近公共祖先【中等】
经验分享·算法·leetcode·职场和发展·golang·dfs
s砚山s12 分钟前
代码随想录刷题——二叉树篇(十三)
数据结构·算法
alphaTao16 分钟前
LeetCode 每日一题 2026/1/5-2026/1/11
算法·leetcode
山上三树17 分钟前
详细介绍 C 语言中的 #define 宏定义
c语言·开发语言·算法
黎雁·泠崖31 分钟前
二叉树知识体系全梳理:从基础到进阶一站式通关
c语言·数据结构·leetcode
AI科技星33 分钟前
引力与电磁的动力学耦合:变化磁场产生引力场与电场方程的第一性原理推导、验证与统一性意义
服务器·人工智能·科技·线性代数·算法·机器学习·生活
蜕变菜鸟34 分钟前
JS的Object.keys()和sort()排序的用法
数据结构·算法
源代码•宸36 分钟前
Golang基础语法(go语言error、go语言defer、go语言异常捕获、依赖管理、Go Modules命令)
开发语言·数据库·后端·算法·golang·defer·recover
如果你想拥有什么先让自己配得上拥有1 小时前
算数顺序的逻辑和发展?
算法