最大子数组和【贪心算法】

  1. 最大子数组和
    给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

子数组 是数组中的一个连续部分。

java 复制代码
class Solution {
    public int maxSubArray(int[] nums) {
        //记录最大结果,初始化为最小值
        int sum = Integer.MIN_VALUE;
        //记录连续和
        int count = 0;

        for (int i = 0; i < nums.length; i++) {
            count += nums[i];//累加
            if (count > sum) {//遇到最大值及时记录,只保留最大的
                sum = count;
            }
            if (count < 0) {//遇到连续和为负数,就舍弃前面的。令count=0,相当于把下一个当作起点。
                count = 0;
            }
        }
        return sum;
    }
}
相关推荐
freexyn5 分钟前
Matlab自学笔记六十二:求解三角函数方程的通解周期解
笔记·算法·matlab
zstar-_7 分钟前
【算法笔记】7.LeetCode-Hot100-图论专项
笔记·算法·leetcode
xienda10 分钟前
冒泡、选择、插入排序:三大基础排序算法深度解析(C语言实现)
数据结构·算法·排序算法
用户403159863966321 分钟前
带 WriteBuffer 的内存读写操作
java·算法
岁忧23 分钟前
(LeetCode 面试经典 150 题 ) 209. 长度最小的子数组(双指针)
java·c++·算法·leetcode·面试·go
逑之38 分钟前
排序算法:快排的深入优化和文件归并
算法·排序算法
封印师请假去地球钓鱼1 小时前
粒子滤波|粒子滤波算法介绍
算法
皮卡蛋炒饭.1 小时前
数据结构——堆
数据结构·算法
harykali1 小时前
Datawhale AI 夏令营:Task2从MCP入门到MCP Sever设计
算法·mcp
sun0077001 小时前
C++实现二叉树左右子树交换算法
开发语言·c++·算法