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

最大子数组和力扣--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(int[] nums) {
        int sum = Integer.MIN_VALUE;
        int count=0;
        for(int i=0;i<nums.length;i++){
            count+=nums[i];
            sum = Math.max(sum, count);//这行和下一行不可以交换顺序,因为下一行改变了count的取值,从而会影响到这一行
            if(count<0){count=0;}
             
        }
            return sum;
    }

}


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

相关文章:

  • 深入解析数据倾斜:原因、影响与优化方案
  • XGMII(10 Gigabit Media Independent Interface)详解
  • LLMR: Real-time Prompting of Interactive Worldsusing Large Language Models
  • 2016年蓝桥杯第七届CC++大学B组真题及代码
  • spring boot 2.7 + seata +微服务 降级失败问题修复
  • 【愚公系列】《Python网络爬虫从入门到精通》037-文件的存取
  • ubuntu20.04仿真复现legged_control
  • 大模型系列——Browser Use浏览器自动化代理
  • flutter 专题 八十五 Flutter 应用调试
  • ASPNET Core笔试题 【面试宝典】
  • 【Transformer模型学习】第三篇:位置编码
  • 深度学习-138-LangGraph之应用实例(七)构建自动绘图系统
  • 【Block总结】SAFMN,空间自适应调制与局部特征增强的协同设计|即插即用
  • Eureka Server 数据同步原理解析
  • DeepSeek开源周Day6:DeepSeek V3、R1 推理系统深度解析,技术突破与行业启示
  • ElasticSearch第二弹——DSL查询7
  • Kubernetes (K8S) 核心原理深度剖析:从架构设计到运行机制
  • leetcode141.环形链表,142环形链表ii
  • 动态规划/贪心算法
  • 市场加速下跌,但监管「坚冰」正在消融