首页 > 其他分享 >53. 最大子数组和

53. 最大子数组和

时间:2024-11-10 21:31:32浏览次数:5  
标签:pre res1 最大 nums int 结果 53 数组 ans

  1. 题目链接

  2. 解题思路

    • 最大子数组问题,有两个基本的想法,以i开头的子数组结果是怎样的,求出所有的结果,最优的那个,就是答案;以i结尾的子数组结果是怎样的,求出所有的结果,最优的那个,就是答案。
    • 本题我们可以考虑,「以i结尾的结果是怎样的」,为啥?因为我们要求的是最大的累加和,我们求出了res1=「以i结尾的结果」,求i+1的结果就很方便了,如果res1为正数,则i+1的结果就是res1 + nums[i + 1],如果res1为负数,则i+1的结果就是nums[i + 1]
  3. 代码

    class Solution {
    public:
        int maxSubArray(vector<int>& nums) {
            int n = nums.size();
            int pre = nums[0];   // 0结尾的结果
            int ans = pre;
            for (int i = 1; i < n; ++i) {   // 我们现在求以i结尾的结果是多少
                if (pre > 0) {    // 如果前面的累加和大于0   则加上
                    pre += nums[i];
                } else {    // 否则不加
                    pre = nums[i];
                }
                ans = max(ans, pre);     // 更新结果
            }
            return ans;
        }
    };
    

标签:pre,res1,最大,nums,int,结果,53,数组,ans
From: https://www.cnblogs.com/ouyangxx/p/18538547

相关文章

  • LeetCode 面试题16.07[最大数值]
    题目链接LeetCode面试题16.07[最大数值]详情实例题解思路不能用ifelse就用三目表达式三目表达式:条件表达式?符合:不符合 此处条件表达式为a>b符合输出a不符合输出b即a>b?a:b代码classSolution{public:intmaximum(inta,intb){......
  • 工作学习笔记(五)数组
    在Java中,数组有以下重要作用:存储数据可以将同类型的多个数据组合在一起。例如,存储一个班级学生的考试成绩。如果有50个学生,就可以创建一个 int 类型的数组 int[]scores=newint[50]; 来存放所有成绩。除了基本数据类型,也能存储对象。比如, String[]names=newStri......
  • 实验4 C语言数组应用编程
    实验任务1:task1.c源代码:1#include<stdio.h>2#defineN43#defineM245voidtest1(){6intx[N]={1,9,8,4};7inti;89printf("sizeof(x)=%d\n",sizeof(x));1011for(i=0;i<N;++i)......
  • 一道题把我气笑了:) 力扣.53 最大子数组和 leetcode maximum-subarray
    数组系列力扣数据结构之数组-00-概览力扣.53最大子数组和maximum-subarray力扣.128最长连续系列longest-consecutive-sequence力扣.1两数之和N种解法two-sum力扣.167两数之和IItwo-sum-ii力扣.170两数之和IIItwo-sum-iii力扣.653两数之和IVtwo-sum-IV力......
  • 实验4 c语言数组应用编程
    task1:1#include<stdio.h>2#include<stdlib.h>3#defineN44#defineM2567voidtest1(){8intx[N]={1,9,8,4};9inti;1011printf("sizeof(x)=%d\n",sizeof(x));1213for(i=0;i<N;++i)14......
  • 4-2-2.C# 数据容器 - HashSet 扩展(HashSet 集合操作、HashSet 存储对象的特性、HashSe
    HashSet概述HashSet<T>存储的元素是无序的HashSet<T>存储的元素是不可重复的HashSet<T>支持泛型,可以指定存储的元素的类型HashSet<T>不支持索引,不可以通过索引获取或修改元素HashSet<T>不是线程安全的,在多线程环境中需要谨慎使用一、HashSet集合操作1......
  • python中常见的8种数据结构之一数组的应用
    在Python中,数组是一种常见的数据结构,用于存储一系列相同类型的元素。在实际应用中,数组可以用于解决各种问题。以下是数组在Python中的一些常见应用:1.存储和访问数据:数组可以用于存储和访问一组数据。可以通过索引访问数组中的元素,也可以使用切片操作来获取数组的子集。2.......
  • day05 数组和二维数组
    今日内容数组二维数组教学目标能够知道数组的概念和作用能够使用数组的两种初始化方式能够通过索引访问数组元素能够完成数组的遍历能够理解数组在内存中的操作过程能够看懂数组常见的问题并知道如何解决能够完成数组的常见操作(求和、求最值)能够使用二维......
  • 代码随想录算法训练营第18天| 530.二叉搜索树的最小绝对差, 501.二叉搜索树中的众数 , 2
    530.二叉搜索树的最小绝对差文章链接:https://programmercarl.com/0530.二叉搜索树的最小绝对差.html视频链接:https://www.bilibili.com/video/BV1DD4y11779/?vd_source=6cb513d59bf1f73f86d4225e9803d47b题目链接:https://leetcode.cn/problems/minimum-absolute-difference-in......
  • 540. 有序数组中的单一元素
    文章目录问题描述解决思路代码示例复杂度分析问题描述给你一个仅由整数组成的有序数组,其中每个元素都会出现两次,唯有一个数只会出现一次。请你找出并返回只出现一次的那个数。你设计的解决方案必须满足O(logn)时间复杂度和O(1)空间复杂度。解决思路题......