【LeetCode每日一题】——剑指 Offer 42.连续子数组的最大和

news/2025/1/19 15:20:54/

文章目录

  • 一【题目类别】
  • 二【题目难度】
  • 三【题目编号】
  • 四【题目描述】
  • 五【题目示例】
  • 六【解题思路】
  • 七【题目提示】
  • 八【题目注意】
  • 九【时间频度】
  • 十【代码实现】
  • 十一【提交结果】

一【题目类别】

  • 动态规划

二【题目难度】

  • 简单

三【题目编号】

  • 剑指 Offer 42.连续子数组的最大和

四【题目描述】

  • 输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。
  • 要求时间复杂度为O(n)。

五【题目示例】

  • 示例1:
    • 输入: nums = [-2,1,-3,4,-1,2,1,-5,4]
    • 输出: 6
      • 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。

六【解题思路】

  • 利用动态规划的思想,对于数组每一位的数字,只有两种情况:
    • 将此元素与之前的子数组组合在一起,形成一个新的子数组
    • 此元素自己单独作为一个子数组或者子数组的开始
  • 我们只需要在这两种情况里面选择最大的那个保存为截止到当前位置的最大值
  • 然后不停的更新最大值
  • 最后返回结果即可

七【题目提示】

  • 1<=arr.length<=1051 <= arr.length <= 10^51<=arr.length<=105
  • −100<=arr[i]<=100-100 <= arr[i] <= 100100<=arr[i]<=100

八【题目注意】

  • 本题与主站 53 题相同:https://leetcode-cn.com/problems/maximum-subarray/

九【时间频度】

  • 时间复杂度:O(n)O(n)O(n),其中nnn为数组大小
  • 空间复杂度:O(1)O(1)O(1)

十【代码实现】

  1. Java语言版
class Solution {public int maxSubArray(int[] nums) {int[] dp = new int[nums.length];dp[0] = nums[0];int max = dp[0];for(int i = 1;i<nums.length;i++){dp[i] = Math.max(dp[i - 1] + nums[i],nums[i]);max = Math.max(dp[i],max);}return max;}
}
  1. C语言版
int maxSubArray(int* nums, int numsSize)
{int* dp = (int*)malloc(sizeof(int) * numsSize);dp[0] = nums[0];int max = dp[0];for(int i = 1;i<numsSize;i++){dp[i] = fmax(dp[i -1] + nums[i],nums[i]);max = fmax(dp[i],max);}return max;
}
  1. Python版
class Solution:def maxSubArray(self, nums: List[int]) -> int:dp = [0] * len(nums)dp[0] = nums[0]res = dp[0]for i in range(1,len(nums)):dp[i] = max(dp[i - 1] + nums[i],nums[i])res = max(res,dp[i])return res

十一【提交结果】

  1. Java语言版
    在这里插入图片描述

  2. C语言版
    在这里插入图片描述

  3. Python语言版
    在这里插入图片描述


http://www.ppmy.cn/news/5089.html

相关文章

防止网站被爬虫抓取的方法有哪些

防止网站被爬虫抓取的方法有哪些 对于网络爬虫&#xff0c;我们是既爱又恨。一方面爬虫可以带来客观的流量&#xff0c;另一方面又会占用服务器资源。因此在面对爬虫时&#xff0c;进行爬虫管理很有必要。那么我们该如何防止网站被爬虫呢&#xff1f; 一、分辨爬虫的善恶 网络爬…

SpringCloud(8)— 使用ElasticSearch(RestClient)

SpringCloud&#xff08;8&#xff09;— 使用ElasticSearch(RestClient) 一 认识RestClient ES 官方提供了各种语言的客户端用来操作ES&#xff0c;这些客户端的本质就是组创DSL语句&#xff0c;通过 Http 请求发送给ES 官方文档地址&#xff1a;Elasticsearch Clients | E…

m基于CNN卷积神经网络的IBDFE单载波频域均衡算法

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 单载波频域均衡(SC-FDE)是解决符号间干扰(ISI)问题的一项重要技术。相比于单载波时域均衡(SC-TDE)技术和正交频分复用(OFDM)技术,SC-FDE技术具有复杂度低、峰均功率比小的优点。但是,SC-FDE技术中…

【人脸识别】SVM和PCA人脸识别【含GUI Matlab源码 369期】

⛄一、简介 1 PCA-SVM原理 1.1 主成分分析PCA 本文处理的所有原始图片都是112x 92大小的pgm格式图片&#xff0c; 每幅图片包含10304个像素点&#xff0c; 每一行代表一个样本&#xff0c;维数就是10304维。维数过大使得数据处理工作十分复杂&#xff0c;同时&#xff0c;图片…

MySQL基础操作汇总(干货)

数据库操作&#xff1a; 1)创建数据库&#xff1a;create database数据库名; 2)查看所有数据库&#xff1a;show databases; 3)选中指定数据库&#xff1a;use 数据库名; 4)删除数据库&#xff1a; drop database数据库名; 数据表操作 1)创建表&#xff1a;create table表…

ITSS认证流程

ITSS认证流程 ITSS实施的核心是采用建立质量管理体系的PDCA方法论&#xff08;计划-执行-检查-改进&#xff09;实施过程管控&#xff0c;根据ITSS标准的各项要求&#xff0c;对人员、过程、技术和资源四个关键要素进行全面整合&#xff0c;并与IT服务全生命周期的规范化管理相…

Hive DDL 数据定义

文章目录DDL 数据定义一&#xff0c;创建数据库1&#xff09;创建一个数据库&#xff0c;数据库在 HDFS 上的默认存储路径是/user/hive/warehouse/*.db。2&#xff09;避免要创建的数据库已经存在错误&#xff0c;增加 if not exists 判断。&#xff08;标准写法&#xff09;3&…

无形资产评估的9个必要性

必要性一&#xff1a;摸清家底&#xff0c;维护企业资产的完整 有形资产的评估、管理、利用&#xff0c;多年来企业自身已成了一套科学、有效的管理制度&#xff0c;其资产量在相关财务报告中已得到了充分的揭示。但是一个企业到底有哪些无形资产&#xff0c;其价值量如何&…