【leetcode hot 100 53】最大子数组和

解法一:(动态规划)我们用 f(i) 代表以第 i 个数结尾的「连续子数组的最大和」,那么很显然我们要求的答案就是:max{f(i)},f(i)=max{f(i−1)+numsi,numsi}

java 复制代码
class Solution {
    public int maxSubArray(int[] nums) {
        int pre=0, max_sum=nums[0], left=0;
        while(left<nums.length){
            pre=Math.max(pre+nums[left],nums[left]);
            max_sum=Math.max(max_sum,pre);
            left++;
        }
        return max_sum;
    }
}

注意:

  • ‌动态规划通过将一个大问题分解为多个重叠的子问题,并存储子问题的解以避免重复计算,从而提高算法效率。其核心思想在于"分解问题、缓存中间结果,避免重复计算,从而高效求解复杂问题"‌
  • 类似【leetcode hot 100 560】和为K的子数组
相关推荐
ZC跨境爬虫20 分钟前
LeetCode 88. 合并两个有序数组(双指针详解 + Java Python 实现)
java·python·算法·leetcode
Nil20823 分钟前
leetcode 238除了自身以外数组的乘积
数据结构·算法·leetcode
土司大王23 分钟前
LeetCode hot100——最长连续序列
数据结构·算法·leetcode
caimouse25 分钟前
ReactOS 图形系统分析(17):区域填充 — EngPaint / IntEngPaint(paint.c)
c语言·开发语言·算法
生态学者29 分钟前
Ecological Indicators | 机场鸟调的新方法:用 AWM-PC1 读懂干扰梯度下的鸟类群落
人工智能·算法·r语言·微信公众平台
Herbert_hwt36 分钟前
第六章 Java深入理解接口、函数式接口与lambda表达式
java·开发语言·算法
君君思密达1 小时前
LeetCode Hot 100 题目详解-滑动窗口
算法·leetcode·职场和发展
GreenTea9 小时前
深度解读 Anthropic 多智能体报告:更强的模型 ≠ 更好的协调
前端·后端·算法
fqq310 小时前
力扣刷题前置Java语法
算法·leetcode·职场和发展
Thecozzy12 小时前
大厂 AI Coding 面试大招
人工智能·面试·职场和发展