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

力扣—53. 最大子数组和

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.length <= 105
  • -104 <= nums[i] <= 104

整体思路:自身和前一个数相加后和自身比较,比自身大就带着再和下一个数相加,并且记录最大值。比自身小就扔掉从自身开始往下找。最终找出最大和的

代码:

class Solution {
public:
    int maxSubArray(vector<int>& nums) {
        int nums_max = 0;//比较值
        int ans_max = nums[0];//最大值,定义为第一个数组元素;因为数组从第一个元素开始遍历,只有第一个数组元素时候第一个元素就是当前的最大值
        for(int i = 0; i <nums.size(); i++){//遍历整个数组
            nums_max = max(nums[i], nums_max + nums[i]);//自身和自身+上一个元素取最大值
            ans_max = max(nums_max, ans_max);//记录最大值(是遍历过的元素里面的和的最大值)
        }
        return ans_max;
    }
};


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

相关文章:

  • UE5肉鸽游戏教程学习
  • jQuery-Word-Export 使用记录及完整修正文件下载 jquery.wordexport.js
  • 生成对抗网络模拟缺失数据,辅助PAMAP2数据集仿真实验
  • SQL注入--文件读写注入--理论
  • Linux设置以及软件的安装(hadoop集群安装02)
  • “iOS profile文件与私钥证书文件不匹配”总结打ipa包出现的问题
  • 【FPGA】Verilog:利用 4 个串行输入- 串行输出的 D 触发器实现 Shift_register
  • 基于Opencv的图像处理软件
  • 电路模型和电路定理(二)
  • 嵌入式驱动开发详解3(pinctrl和gpio子系统)
  • 如何在ubuntu上调试core dump
  • 小程序-基于java+SpringBoot+Vue的铁路订票平台小程序设计与实现
  • 网络安全,文明上网(6)网安相关法律
  • [OpenHarmony5.0][Docker][教程]OpenHarmony5.0编译环境基于WSL2封装Docker镜像教程
  • Matlab 深度学习工具箱 案例学习与测试————求二阶微分方程
  • 基于CNN-LSTM的时序预测MATLAB实战
  • 【C++篇】深度解析 C++ List 容器:底层设计与实现揭秘
  • 类和对象plus版
  • 量化交易系统开发-实时行情自动化交易-4.4.做市策略
  • 蓝桥杯每日真题 - 第22天
  • Wireshark抓取HTTPS流量技巧
  • 量子生成对抗网络
  • docker镜像、容器、仓库介绍
  • Flutter:启动屏逻辑处理01:修改默认APP启动图标
  • 大数据实战——MapReduce案例实践
  • Node.js的http模块:创建HTTP服务器、客户端示例