当前位置: 首页 > article >正文

LeetCode热题100-最大子数组和【JavaScript讲解】

题目:

在这里插入图片描述

解题思路:

声明:这里的解题思路及代码是作者学习LeetCode上的画手大鹏。

  1. 这里我们使用动态规划首先对数组进行遍历,当前最大连续子序列和为 sum,结果为 ans。
  2. 如果 sum > 0,则说明 sum 对结果有增益效果,则 sum 保留并加上当前遍历数字。
  3. 如果 sum <= 0,则说明 sum 对结果无增益效果,需要舍弃,则 sum 直接更新为当前遍历数字。即从本数字开始形成最新的子数组。
  4. 每次比较 sum 和 ans的大小,将最大值置为ans。【通过比较sum和ans的值来判断是否需要留取这一段子数组。即 ans = Math.max(sum,ans)
  5. 点击此处跳转至画手大鹏的讲解界面 ,下滑有画图讲解;也欢迎在本文章下留言不懂的地方。

解答代码:

/**
 * @param {number[]} nums
 * @return {number}
 */
var maxSubArray = function(nums) {
    let ans = nums[0];
    let sum = 0;
    for(const num of nums){
        if(sum > 0){
            sum += num;
        }else{
            sum = num;
        }
        ans = Math.max(sum,ans);
    }
    return ans;
};

通过:

在这里插入图片描述


http://www.kler.cn/a/539419.html

相关文章:

  • Golang 并发机制-7:sync.Once实战应用指南
  • Office/WPS接入DeepSeek等多个AI工具,开启办公新模式!
  • ASP.NET Core WebSocket、SignalR
  • android selinux 问题
  • 【redis】缓存设计规范
  • TaskBuilder项目实战:创建项目
  • webpack配置之---output.filename
  • 【DeepSeek】私有化本地部署图文(Win+Mac)
  • Windows编程:在 VS2010 里面,打开一个项目
  • #渗透测试#批量漏洞挖掘#WookTeam searchinfo SQL注入漏洞
  • Vue 3 中的 reactive 和 ref 有什么区别?
  • IDEA关联Tomcat,部署JavaWeb项目
  • kafka服务端之延时操作实现原理
  • NLP论文速读(ICLR 2025)|在实时机器翻译中对齐人类偏好
  • 基于spring boot的餐厅点餐管理系统设计与实现(LW+源码+讲解)
  • 设计模式
  • 所以尼!什么是边缘计算?这和云计算有什么关系?
  • 移动电视盒MGV2000刷安卓及Armbian笔记
  • vue 中 props 的使用,保姆教程
  • 火语言RPA--网址/图片地址获取
  • 生成式聊天机器人 -- 基于Pytorch + Global Attention + 双向 GRU 实现的SeqToSeq模型 -- 上
  • CodeReview-checkList-Java版
  • GOland的context的使用
  • MYSQL 创建索引
  • 集成学习(二):从理论到实战(附代码)
  • CSGHub高效管理|解锁DeepSeek R1蒸馏模型 :高效推理的新选择