LeetCode 53. 最大子序和(Maximum Subarray)

动态规划各类问题分析——LeetCode习题精讲 目录 1.动态规划问题分类 2.线性DP         一维数组         二维坐标系         01背包         完全背包         多重背包   阅读详情

第一次提交成功

class Solution {
public:
    int maxSubArray(vector<int>& nums) {
        if (nums.size() == 1) return nums[0];
        //
        int sum = -1;
        vector<int> submax;
        for (int i = 0; i < nums.size(); i++)
        {
            if (sum >= 0){
                sum = sum + nums[i];
                submax.push_back(sum);
            }
            else{
                sum = nums[i];
                submax.push_back(sum);
            }
        }
        int max = submax[0];
        for (int i = 1; i < submax.size(); i++) {
            if (max < submax[i]) max = submax[i];
        }
        return max;
    }
};

这里我的思路是包含当前nums[i]的连续子数组的最大和(按序号只算i左边的),所以当前一个nums[i-1]处的最大值是负数时,nums[i]处的最大值就是nums[i]本身,当nums[i-1]处的最大值大于零,nums[i]处的最大值就是sum + nums[i]

对于nums中的第一个元素nums[0],我利用初始sum = -1,在循环中进入else把第一个位置最大值修改为nums[i]

第二次尝试:

其实对于上面的第二个循环并不必要,完全可以在第一个中进行。

class Solution {
public:
    int maxSubArray(vector<int>& nums) {
        if (nums.size() == 1) return nums[0];
        //
        int max = nums[0]; 
        int sum = -1;
        for (int i = 0; i < nums.size(); i++)
        {
            if (sum >= 0){
                sum = sum + nums[i];
            }
            else{
                sum = nums[i];
            }
            if (sum > max) max = sum;
        }
        return max;
    }
};

虽然这个sum初始化为-1看起来很巧妙,但是却有一点本末倒置,毕竟这是一个求和问题,sum初始化为0要更易于理解。

第三次尝试:先加为敬!

class Solution {
public:
    int maxSubArray(vector<int>& nums) {
        int max = nums[0]; 
        int sum = 0;
        for (int i = 0; i < nums.size(); i++)
        {
            sum += nums[i];
            if (sum > max) max = sum;
            if (sum < 0) sum = 0;
        }
        return max;
    }
};

判断只有一个元素也是多余的!顶多判断一个空数组,但是题目中说了至少有一个值。

AG32VF407直流电流采集仪设计:从1uA到10A宽范围采样与FPGA加速方案 本文详细介绍了基于AG32VF407芯片的直流电流采集仪设计方案,实现了从1uA到10A的宽范围采样。方案采用低噪声电源、精密运放调理、高速比较器自动档位切换及高精度ADC同步采样,并重点阐述了利用AG32VF407片内FPGA实现硬件加速以提升性能的架构思路,为精密电流测量提供了完整的硬件与FPGA加速解决方案。 阅读详情

相关推荐

欧姆龙485通讯示例程序_【精品实验】PLC学习神器与温湿度变送器的通讯

BFH点击蓝字关注我们↑↑↑↑  PLC学习神器提供RS485接口,可支持无协议RS指令、无协议RS2指令、Modbus通讯功能,可通过设置通讯格式改变通讯协议,RS485对应的通讯格式地址是D8400;  本案例以RS485接口与温湿度变送器通讯,通讯格式如下一温湿度变送器的说明书介绍1.1主要技术参数1.2 通讯协议 1、所有通讯回路都应遵照主/从方式。依照主从方式,数据可以在一个主...

weixin_39860201的博客 1万+

leetCode 53.最大子数和 图解 + 贪心算法/动态规划+优化

由于前面已经计算过包括i = 1之前的最大连续子序列和,并且将值保存在 dp[1] 里,所以count = dp[1] + (-3) = 1 + (-3) = -2,接着在count 和 nums[2] = -3中选取最大值,即。发现 count < nums[3],这时候取最大值就可以让dp[3] = nums[3],表示接下来,可以调整起点,让 i = 3 为起点。count = (-2) + 1 = -1,在count 和 nums[1] = 1中选取最大值,即。贪心算法的巧妙需要慢慢体会!

呵呵哒!的博客 1939

五、2K0300 久久派开发板的GPIO控制与Shell脚本自动化实战

本文详细介绍了基于龙芯2K0300处理器的久久派开发板的GPIO控制方法,通过sysfs文件系统实现LED控制和传感器读取。重点讲解了Shell脚本自动化实战,包括LED闪烁、流水灯效果和传感器数据采集,为物联网项目开发提供完整解决方案。

silver的专栏 687

LeetCode-53-最大子数组和-简单(贪心/分治/暴力求解/动态规划)

一 题目 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组 是数组中的一个连续部分。 二 示例及提示 示例 1: 输入:nums = [-2,1,-3,4,-1,2,1,-5,4] 输出:6 解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。 示例 2: 输入:nums = [1] 输出:1 示例 3: 输入:nums = [5,4,-1,7,8] 输出:23 提示: 1 <= nums.lengt...

哼 1195

3U 与 SV630A 伺服实现 CANLINK 通讯

SD410这组参数特别重要,这个32位特别重要,是防止数值乱码的关键。

weixin_42714122的博客 2694

HDMI调试避坑指南:从AVI InfoFrame到通用控制包,这些DataIsland Packet细节千万别忽略

本文深入解析HDMI调试中DataIsland数据包的关键细节,包括AVI InfoFrame、通用控制包和音频时钟再生包(ACR)的配置与故障排查。通过实际案例和寄存器配置示例,帮助工程师快速定位显示异常、色彩失真和音频中断等问题,提升HDMI接口调试效率。

weixin_30897233的博客 635

C++ 最大子序和

题目: 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例 1: 输入:nums = [-2,1,-3,4,-1,2,1,-5,4] 输出:6 解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。 示例 2: 输入:nums = [1] 输出:1 示例 3: 输入:nums = [0] 输出:0 这道题确实没想明白。后来看的解析才知道的,先说说自己的思路,想到的是用for循环做,从第一个数字加到数组的最后一个数字,并用临时变量记录最长的

YiYeZhiNian的博客 1305

S7-1200g2运动控制实战:从轴组配置到程序调试

本文详细介绍了S7-1200g2运动控制功能的实战应用,从轴组配置到程序调试的全流程。通过TIA Portal中的工艺对象配置,实现单轴、同步轴组等运动控制模型,并分享常见问题排查与性能优化经验,帮助工程师快速掌握中小型自动化设备的运动控制技术。

weixin_28698059的博客 588

53. Maximum Subarray(最大子序列和,分而治之法)

题目; Given an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum. Example: Input: [-2,1,-3,4,-1,2,1,-5,4], Output: 6 Explanat...

Hcaroline 359

大模型算法岗常见面试题100道

LangChain是一个用于构建和运行大型语言模型应用的开源框架。它提供了一套工具和组件,帮助开发者将大型语言模型(如 GPT-3)与其他工具和API结合,以完成更复杂的任务。1、LangChain包含哪些核心概念?Components:可重用的模块,例如API调用、数据库查询等。Chains:将多个Components链接在一起以完成特定任务的流程。Prompt Templates: 用于指导语言模型生成输出的文本模板。Output Parsers:解析语言模型输出的工具。

具身机器人和通用AI 1959

手把手教你学基于 Linux 的 NPU 固件开发-第 10 讲:可靠性设计(RAS)——让系统坚如磐石错误检测、纠正与上报机制(ECC、Parity)

组件推荐保护机制备注HBM/DDRScrubbing必须开启,定期巡检片上 SRAMECC(权重/激活值),Parity(指令)权衡面积与可靠性计算单元ABFT或DMR(关键路径)防止计算逻辑错误片上网络CRC重传保证数据传输完整性系统软件AER 上报CE 监控自动恢复闭环管理,杜绝 SDC运维策略预测性维护Checkpoint变被动为主动核心心法(信任硬件,但必须验证。在纳米尺度下,错误是必然发生的物理现象。

MHD0815的博客 91

【leetcode】53. 最大子序和(Maximum Subarray)

题目描述 【leetcode】53. 最大子序和(Maximum Subarray) 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 第一次解答 思路: 暴力法。 遍历所有可能的组合,起始点i从0开始到nums.size()-1 遍历从所有起始点开始,到结束点j处的累加和,返回最大的那个。 执行次数=1+2+3+…+n,等差数列,所以O(...

Liber-coder的博客 177

得物(毒)App潮鞋价格波动监控系统实战:从爬虫开发到数据可视化完整指南

本文将带领您从零开始构建一套完整的得物潮鞋价格监控系统,涵盖爬虫开发、数据存储、价格波动分析和可视化展示等全流程技术。我们将使用最新的Python技术栈,包括异步爬虫框架、智能代理池、反爬虫绕过技巧,以及基于机器学习的时间序列预测模型。无论您是想要追踪特定鞋款价格的潮流爱好者,还是希望构建商业级监控系统的开发者,这篇文章都将为您提供切实可行的解决方案。

2201_76125261的博客 2505

LeetCode力扣 53. 最大子序和 Maximum Subarray 题解代码 JavaScript

https://leetcode-cn.com/problems/maximum-subarray/ /** * @param {number[]} nums * @return {number} */ var maxSubArray = function(nums) { var mV = nums[0]; var i,j,k = nums[0]; for(i=1;i<nums.length;++i) { if(k < 0)

Coding home - 漂流瓶jz 567

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Leetcode 53. Maximum Subarray 最大子序和

Leetcode 53. Maximum Subarray 最大子序和 标签: Leetcode 题目地址:https://leetcode-cn.com/problems/maximum-subarray/ 题目描述 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4],...

CoderWangSon 306

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Leetcode 53.最大子序和(Maximum Subarray)

Leetcode 53.最大子序和 1 题目描述(Leetcode题目链接)   给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 2 题解   本题可以使用动态规划来做,定义DP[i]DP[i]DP[i]为以第...

qq_39378221的博客 176

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

leetcode 53.最大子序和(maximum subarray)C语言

53.最大子序和(maximum subarray)C语言1.description2.solution 1.description https://leetcode-cn.com/problems/maximum-subarray/description/ 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 进阶:

hsk6543210的博客 471

Leetcode: 53.Maximum Subarray 最大子序和

Maximum Subarray 最大子序和 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 class Solution { public: int maxSubArray(vector<i...

Coding 225

用Python刷LeetCode【53. 最大子序和(Maximum Subarray)】

嗯。。。过完春节了,开始捡起学习的进程(真香)。。。开始看mooc浙大的数据结构与算法(姥姥版) C++我之前稍微接触了一点点,也仅仅是学到函数部分,唉,刷题不易,要是能刷过PAT的顶级,估计离合格的程序员也不远了吧? 总之。。。。新的一年,新的作死! 第一种解法:豹腻解法2 class Solution: def maxSubArray(self, nums): ...

Aaron_7906的博客 326

LeetCode【#53】 Maximum Subarray(最大子序和)

题目链接: 点击跳转 题目: Given an integer arraynums, find the contiguous subarray(containing at least one number) which has the largest sum and return its sum. Example: Input: [-2,1,-3,4,-1,2,1,-5,4...

Mikchy的博客 384

【LeetCode】 53. Maximum Subarray 最大子序和(Easy)(JAVA)

【LeetCode】 53. Maximum Subarray 最大子序和(Easy)(JAVA) 题目地址: https://leetcode.com/problems/maximum-subarray/ 题目描述: Given an integer array nums, find the contiguous subarray (containing at least one number)...

qq_16927853的博客 265

LeetCode(53):最大子序和 Maximum Subarray(Java)

2019.6.17 #程序员笔试必备# LeetCode 从零单刷个人笔记整理(持续更新) 这是经典的数据结构与算法的入门题,也是我刷的第一道题,第一次打开了分治和DP的大门,原来算法是这么神奇的东西。 #数据结构与算法学习笔记#PTA4:分治算法求最大子列和(C/C++) #数据结构与算法学习笔记#PTA3:在线处理算法求最大子列和,并返回最大子列和头尾元素(C/C++)(2004年浙大计科考...

NJU_ChopinXBP的博客 394

Leetcode 53. Maximum Subarray 最大子序和(C++)

题目描述: 给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释:连续子数组[4,-1,2,1] 的和最大,为6。 思路: 这是动态规划中一道非常经典的题目,虽然LeetCode上把这道题目难度定位Easy,但是我认为弄懂解决这道问题背后的思路,很多medium甚至hard都会迎刃而解。 首先最容易想到的依然是暴力法,两层...

flannery023的博客 299

LeetCode-53. Maximum Subarray(最大子序和)

最大子序和 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 进阶: 如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。 Maximum Subarray Given an int...

三九_感冒灵的博客 175

LeetCode—53.最大子序和(Maximum Subarray)——分析及代码(C++)

LeetCode—53.最大子序和[Maximum Subarray]——分析及代码[C++]一、题目二、分析及代码1. 动态规划(1)思路(2)代码(简洁)(3)代码(高效)(4)结果三、其他 一、题目 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续...

江南土豆的博客 349

LeetCode53. Maximum Subarray(最大子序和)

最大子序和

grllery的博客 388
上一篇: LeetCode 20. 有效的括号(Valid Parentheses)
下一篇: LeetCode 70. 爬楼梯(Climbing Stairs)
君只见独不见
博客等级 码龄12年 99粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值