首页 > 其他分享 >#yyds干货盘点# LeetCode面试题:最大子数组和

#yyds干货盘点# LeetCode面试题:最大子数组和

时间:2023-03-19 23:02:06浏览次数:42  
标签:yyds 面试题 nums int res len 数组 LeetCode dp

1.简述:

给你一个整数数组 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

2.代码实现:

public class Solution {

public int maxSubArray(int[] nums) {
int len = nums.length;
// dp[i] 表示:以 nums[i] 结尾的连续子数组的最大和
int[] dp = new int[len];
dp[0] = nums[0];

for (int i = 1; i < len; i++) {
if (dp[i - 1] > 0) {
dp[i] = dp[i - 1] + nums[i];
} else {
dp[i] = nums[i];
}
}

// 也可以在上面遍历的同时求出 res 的最大值,这里我们为了语义清晰分开写,大家可以自行选择
int res = dp[0];
for (int i = 1; i < len; i++) {
res = Math.max(res, dp[i]);
}
return res;
}
}

标签:yyds,面试题,nums,int,res,len,数组,LeetCode,dp
From: https://blog.51cto.com/u_15488507/6131384

相关文章

  • #yyds干货盘点# LeetCode程序员面试金典:BiNode
    题目:二叉树数据结构TreeNode可用来表示单向链表(其中left置空,right为下一个链表节点)。实现一个方法,把二叉搜索树转换为单向链表,要求依然符合二叉搜索树的性质,转换操作应是原......
  • # yyds干货盘点 # Pycharm和Python到底啥关系?
    大家好,我是皮皮。一、前言前几天在Python白银交流群【厚德载物】问了一个​​Python​​基础的问题,这里拿出来给大家分享下。初学者遇到这种的,可能会有点困惑。二、实现过程......
  • LeetCode435 -- 预定会议问题
    0.ref参考自1.题目描述预定会议问题:给定我们一堆区间,区间不能重叠(\([1,2]\)和\([2,3]\)的\(2\)不算重叠),求最多能保留多少个区间?做法:贪心,按【右端点】排序。......
  • LeetCode354 -- 最长上升子序列
    1.题目描述354.俄罗斯套娃信封问题2.思路非常明显的上升子序列问题。但是我在做的时候遇到了一个之前做\(LCS\)从来没考虑过的点。之前都是直接排序,而无论是......
  • LeetCode337周赛T4 -- 同余
    1.题目描述T42.思路其实本题非常简单。我们只需要知道一个概念:“同余”。即:\(a==b(modc)\),我们称\(a\)和\(b\)相等在\(modc\)意义下。知道了这个点,......
  • #yyds干货盘点#怎样快速地迁移 MySQL 中的数据?
    我们通常会遇到这样的一个场景,就是需要将一个数据库的数据迁移到一个性能更加强悍的数据库服务器上。这个时候需要我们做的就是快速迁移数据库的数据。那么,如何才能快速地迁......
  • #yyds干货盘点#工作中常用的git命令
    Git配置了解版本控制什么是版本控制?我真的需要吗?版本控制是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。什么是分布式版本控制系统分布式版本控制系统(......
  • [LeetCode] 数据结构入门
    数据结构入门217存在重复元素给你一个整数数组nums。如果任一值在数组中出现至少两次,返回true;如果数组中每个元素互不相同,返回false。解法1:两层循环第一层循......
  • 看看这份2023年MySQL终级面试题,提升你的内力,给你面试助力
    1、MySQL中有哪几种锁?(1)表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。(2)行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低......
  • 力扣---面试题 01.02. 判定是否互为字符重排
    给定两个由小写字母组成的字符串s1和s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。示例1:输入:s1="abc",s2="bca"输出:true示例......