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

53.最大子数组和

时间:2024-06-15 16:54:05浏览次数:26  
标签:pre 最大 nums int sum 示例 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

 publicstaticint maxSubArray(int[] nums) {

//空
        if( nums == null || nums.length==0){
            return 0;
        }
        int sum = nums[0];
        int pre = 0;
        for(int i=0;i<nums.length;i++) {
            if (nums[i] > pre + nums[i]) {
                pre = nums[i];
            } else {
                pre = pre + nums[i];
            }
            if(pre>sum){
                sum=pre;
            }
        }
        return sum;
    }

 

 

 

标签:pre,最大,nums,int,sum,示例,53,数组
From: https://www.cnblogs.com/ak918xp/p/18249474

相关文章

  • Day21 | 530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数 、236. 二叉树的最近公
    530.二叉搜索树的最小绝对差需要领悟一下二叉树遍历上双指针操作,优先掌握递归题目链接/文章讲解:https://programmercarl.com/0530.二叉搜索树的最小绝对差.html视频讲解:https://www.bilibili.com/video/BV1DD4y11779思考中序遍历的同时,用pre记录一下上一个节点。classSolut......
  • Java--多维数组
    1.多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组2.二维数组    下列数组啊可看成一个两行五列的数组inta[][]=newint[2][5];3.输出二维数组的第一个数组中具体元素,通过调用打印函数printArray,以次输出第一个数组......
  • 算法第六天:力扣第977题有序数组的平方
    一、977.有序数组的平方的链接与题目描述977.有序数组的平方的链接如下所示:https://leetcode.cn/problems/squares-of-a-sorted-array/description/https://leetcode.cn/problems/squares-of-a-sorted-array/description/   给你一个按 非递减顺序 排序的整数数组 n......
  • 【华为OD机试真题】155、计算数组中心位置 | 机试真题+思路参考+代码解析(C++、Java、P
    文章目录一、题目......
  • 二分【3】 旋转数组
    目录旋转数组旋转数组找最小值旋转数组找指定值  严格递增序列递增序列 旋转序列找中位数: 旋转数组旋转数组找最小值思路#include<iostream>#include<vector>#include<cmath>#include<string>#include<cstring>#include<algorithm>usingnamespac......
  • 请编写一个函数void fun(int tt[M][N],int pp[N]),tt指向一个M行N列的二维函数组,求出
    请编写一个函数voidfun(inttt[M][N],intpp[N]),tt指向一个M行N列的二维函数组,求出二维函数组每列中最小元素,并依次放入pp所指定一维数组中。二维数组中的数已在主函数中赋予。#include<stdio.h>#defineM3#defineN4voidfun(inttt[M][N],intpp[N]){for(int......
  • 【C语言习题】30.使用指针打印数组内容
    文章目录作业标题作业内容2.解题思路3.具体代码作业标题使用指针打印数组内容作业内容写一个函数打印arr数组的内容,不使用数组下标,使用指针。arr是一个整形一维数组。2.解题思路先定义一个数组,使用指针打印数组内容那就是说我们可以通过对指针解引用,来访问......
  • Java--数组的使用
    1.普通For循环(用的最多,需从中取出数据以及下标)        eg:图中三类问题都可2.For-each循环(一般用来打印一些结果)    eg:打印数组的具体元素3.数组作方法入参(对数组进行一些操作)    eg:可通过参数调用数组4.数组做返回值(对数组进行修改,最后返回一......
  • 代码随想录算法训练营第11、12天 | 逆波兰表达式、滑动窗口最大值、前 K 个高频元素
    逆波兰表达式题目https://leetcode.cn/problems/evaluate-reverse-polish-notation/description/逆波兰表达式代码随想录https://programmercarl.com/0150.逆波兰表达式求值.html#其他语言版本滑动窗口最大值https://leetcode.cn/problems/sliding-window-maximum/滑动窗口......
  • 下列程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数 fun(int a[][N]),该
    下列程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(inta[][N]),该函数的功能是:使数组左下半三角元素中的值全部置成0。#include<stdio.h>#defineN3voidfun(inta[][N]){for(inti=1;i<N;i++){for(intj=0;j<i;j++){......