Leetcode数据结构算法—求最大子数组和

2023-11-07

一、题目描述

在这里插入图片描述

二、题目解法

在这里插入图片描述

解题思路:
用 temp 记录局部最优值,用 result 记录全局最优值。
每遍历一个新元素时,判断(已遍历的连续子数组的和)加上(当前元素值),与(当前元素值)对比谁更大。
(1)如果已遍历的连续子数组的和 + 当前元素值 >= 当前元素值
说明(已遍历的连续子数组的和)是大于等于0的,令 temp = 已遍历的连续子数组的和 + 当前元素值。
(2)如果已遍历的连续子数组的和 + 当前元素值 < 当前元素值
说明(已遍历的连续子数组的和)是小于0的,加上这部分只会拖累当前元素,故应该直接抛弃掉这部分,令 * temp = 当前元素值。
(3)对比 temp 和 result,如果 temp 更大,则更新到 result 中。

核心代码

int maxSubArray(int* nums, int numsSize)
{ 
    int temp=nums[0];
    int result=nums[0];
    for(int i=1;i<numsSize;i++)
    { 
        if(temp+nums[i]>=nums[i])
        { 
            temp+=nums[i];
        }
        else
        { 
            temp=nums[i];
        }
        if(temp>result)
        { 
            result=temp;
        }
    }
    return result;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Leetcode数据结构算法—求最大子数组和 的相关文章

随机推荐

  • PHPStorm超级好用的插件

    一 常用插件 1 Translation 翻译插件 2 CodeGlance 代码地图 3 Key Promoter X 快捷键提示 4 Color Highlighter 颜色代码显示为颜色 5 Database Navigator 数据
  • 在学习k8s时候,pod services 和deployment

    在学习 Kubernetes K8s 时 Pod Service 和 Deployment 是三个非常重要的概念 它们是 Kubernetes 中用于管理容器化应用程序的核心组件 Pod Pods Pod 是 Kubernetes 最基本的
  • Rust学习资源清单

    官网学习栏目 https www rust lang org learn 包含标准库 rustdoc cargo和rustc的文档 第三方库文档 https docs rs 各种第三方库的文档 直接搜索tokio anyhow ftp第三方
  • 数据结构-第二讲 线性结构-学习笔记(MOOC 浙江大学 陈越 何钦铭)

    目录 第二讲 线性结构 2 1 线性表及其实现 2 1 1 引子 多项式表示 2 1 2 线性表及顺序存储 2 1 3 顺序存储的插入和删除 顺序存储 数组实现 code 2 1 4 链式存储及查找 2 1 5 链式存储的插入和删除 2 1
  • JAVA - 对象与对象变量

    对象变量 Date deadline 定义了一个对象变量deadline 它可以引用Date类型的对象 但是 一定要认识到 变量deadline不是一个对象 实际上也没有引用对象 此时 不能将任何 Date 方法应用于这个变量上 可以显式地
  • 旋转链表(C语言)

    题目 给定一个链表 旋转链表 将链表每个节点向右移动 k 个位置 其中 k 是非负数 示例 1 输入 1 gt 2 gt 3 gt 4 gt 5 gt NULL k 2 输出 4 gt 5 gt 1 gt 2 gt 3 gt NULL 解释
  • 【ChatGPT+MindShow高效生成PPT,保姆级安装教程】

    AI破局先行者 AI工具 AI绘图 AI专栏 如果你想学到最前沿 最火爆的技术 赶快加入吧 作者简介 硕风和炜 CSDN Java领域优质创作者 保研 国家奖学金 JAVA开发技术栈 面试刷题 面经八股文 经验分享 好用的网站工具分享 恭喜
  • Vue.js 学习笔记:项目实战

    项目实战 使用技术栈 Vue 2 x Vue CLI 4 x Element UI 2 x 开发工具自选 VS Code HbuilderX WebStorm 因本人主要是 Java 开发 使用 Idea 安装 Vue js 插件即可开发
  • 图像处理笔试面试题整理1

    1 图像处理笔试面试题 1 https blog csdn net m0 37407756 article details 78800709 1 1 给定0 1矩阵 求连通域 二值图像分析最重要的方法就是连通区域标记 它是所有二值图像分析的
  • Android平台GB28181设备接入模块分辨率发生变化怎么办?

    技术背景 我们在做Android平台gb28181设备接入模块的时候 遇到这样的情况 比如横竖屏分辨率不锁定 采集摄像头的时候 可以实现 横屏状态采集横屏 竖屏状态采集竖屏 简单来说 横屏状态比如采集的1280 720的 竖屏状态 采集的数
  • Linux下快速比较两个目录的不同

    转载请务必在文章最开头标明原文地址 本文原创地址 博客园骏马金龙https www cnblogs com f ck need u p 9071033 html强烈谴责大量盗文狗 波波说运维 说不定你们的文章也已被抄袭 曾多次想要在Linu
  • Windows10 安装和使用curl 命令

    Curl命令可以通过命令行的方式 执行Http请求 在很多测试中有使用的场景 因此这里研究下如何在windows下执行curl命令 工具下载 在官网处下载工具包 http curl haxx se download html 这里选择64位
  • hive 合并小文件处理方案

    hadoop使用lzo压缩 block块大小为512MB 环境 hadoop2 6 hive1 2 1 lzo压缩 启动压缩 set hive exec compress output true set mapreduce output f
  • Python类的定义与使用

    class Person def init self name sex age CE self name name self sex sex self age age self CE CE def grassland self 注释 草丛战
  • 贪心法--背包问题(不是0/1背包问题)

    课后习题 习题七第1题 问 用贪心法求解如下背包问题的最优解 有7个物品 重量分别为 2 3 5 7 1 4 1 价值分别为 10 5 15 7 6 18 3 背包容量W 15 写出求解过程 答 1 单价分别为 5 5 3 3 1 6 4
  • 史上最全的Jackson框架使用教程

    简单介绍 别再使用 fastJson 了 漏洞天天报 Bug 修不完 快来拥抱 Jackson 吧 Jackson 是用来序列化和反序列化 json 的 Java 的开源框架 Spring MVC 的默认 json 解析器便是 Jackso
  • pymunk怎么创建弯曲实体

    要在pymunk中创建弯曲实体 需要使用pymunk的弯曲约束 Curve Constraint 这种约束可以用来限制两个物体的运动方向 以实现弯曲效果 首先 你需要创建物体并将它们添加到物理空间中 然后 使用pymunk的pymunk c
  • Ubuntu&树莓派的putty、ftp、Xming、VNC远程连接操作教程

    目录 任务大纲 一 远程操作前的准备 1 Ubuntu设置桥接并新建用户 2 树莓派新建用户 二 Win10 下用 puTTY 远程登录 1 远程登录Ubuntu 2 远程登录树莓派 三 Win10 下用 FTP 远程传输文件 1 Ubun
  • MySQL和PgSQL的区别

    2018 6 11 1 问题 如果打算为项目选择一款免费 开源的数据库 那么你可能会在MySQL与PostgreSQL之间犹豫不定 MySQL与PostgreSQL都是免费 开源 强大 且功能丰富的数据库 你主要的问题可能是 哪一个才是最好
  • Leetcode数据结构算法—求最大子数组和

    文章目录 一 题目描述 二 题目解法 一 题目描述 二 题目解法 解题思路 用 temp 记录局部最优值 用 result 记录全局最优值 每遍历一个新元素时 判断 已遍历的连续子数组的和 加上 当前元素值 与 当前元素值 对比谁更大 1