首页 > 编程语言 >Leetcode 53. 最大子数组和 Python题解

Leetcode 53. 最大子数组和 Python题解

时间:2023-04-23 16:36:56浏览次数:51  
标签:最大 nums Python 题解 53 current num 数组 max

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/maximum-subarray
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


1.动态规划

解题思路:
对于当前元素nums[i]来说,最大的连续子数组可以为:

  1. nums[0:i]中的最大连续子数组加上nums[i]
  2. nums[i],此时nums[0:i]中的最大连续子数组小于nums[i]

不需要使用额外的空间来存储dp数组,只需要一个单独的变量记录nums[i]之前的最大连续子数组即可。

提交代码:

class Solution:
    def maxSubArray(self, nums: List[int]) -> int:
        num_i_1=current_max=nums[0]
        for num in nums[1:]:
            num_i_1=max(num,num+num_i_1)
            current_max=max(current_max,num_i_1)
        return current_max

复杂度分析:

  1. 时间复杂度:O(n)
  2. 空间复杂度:O(1)

2.分治法

TBC……


2.题目描述

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

标签:最大,nums,Python,题解,53,current,num,数组,max
From: https://www.cnblogs.com/venas/p/17346893.html

相关文章

  • Python常见的10个安全漏洞及修复方法
    关注我了解更多Python技术知识,带你一路“狂飙”到底!上岸大厂不是梦!编写安全的代码很困难,当你学习一门编程语言、一个模块或框架时,你会学习其使用方法。在考虑安全性时,你需要考虑如何避免代码被滥用,Python也不例外,即使在标准库中,也存在着许多糟糕的实例。然而,许多Python开发人员......
  • Leetcode 1.两数之和 Python题解
    来源:力扣(LeetCode)链接:https://leetcode.cn/problems/two-sum著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。1.暴力遍历法解题思路:遍历数组,对于当前的元素nums[i],如果result=taget-nums[i]在数组中,则返回这nums[i]和result的下标。如果已经查......
  • python + informix+基本语句
    importjaydebeapiimportosimportloggingimporttimeclassPostgre_Person:def__init__(self):#打开数据库连接foriinrange(10):try:url=###user=###password=##......
  • 1 python操作哨兵 、2 python操作集群、3 缓存优化、4 mysql 主从 、5 django使用多数
    目录1python操作哨兵2python操作集群3缓存优化3.1redis缓存更新策略3.2缓存击穿,雪崩,穿透4mysql主从5django使用多数据库做读写分离1python操作哨兵#高可用架构后---》不能直接连某一个主库了---》主库可能会挂掉,后来它就不是主库了#之前学的连接redis的操作,就用不......
  • python 连接xiformix数据库
    importjaydebeapiforiinrange(10):try:url=######user=#####password=#####dirver='com.informix.jdbc.IfxDriver'jarFile="D:\\i......
  • 盘点一款Python发包收包利器——scapy
    今日鸡汤潮平两岸阔,风正一帆悬。    大家好,我是黄伟。今天跟大家讲的是Python用于发送接受网络数据包的模块-------scapy。前言众所周知,我们每天上网都会有很多数据包需要发送,然后处理在接受在发送,这样一个循环往复的过程,这里就显示了很多数据包的发送接收数据。那么,什么是包......
  • 第14届蓝桥杯C++B组省赛题解(更新中)
    目录A.日期统计题目内容思路代码答案B.01串的熵题目内容思路代码答案C.冶炼金属题目内容输入格式输出格式输入样例输出样例思路代码A.日期统计题目内容小蓝现在有一个长度为100的数组,数组中的每个元素的值都在0到9的范围之内。数组中的元素从左至右如下所示:5686......
  • 说说Python集合的那些事儿
    大家好,我是IT共享者,人称皮皮。今天给大家来捋一捋Python集合。一、什么是集合?集合(set)和字典(dict)类似,它是一组key的集合,但不存储value。集合的特性就是:key不能重复。二、集合常用操作1.创建集合set的创建可以使用{}也可以使用set函数:s1={'a','b','c','a','d','b'}......
  • Cmd输入python会打开 Windows 应用商店 解决方法
    当我在CMD中输入Python时,它会打开Windows应用商店让我下载Python3.7。这个问题今天无缘无故地开始了。我没有更改或下载有关Python的任何内容,并且已经尝试重新安装Python,并且Path环境变量是正确的。Answers使用Windows搜索栏查找“管理应用执行别名”。Pytho......
  • python matplotlib 散点图的拟合直线的简单示例
     #samplepointsX=[0,5,10,15,20]Y=[0,7,10,13,20]#solveforaandbdefbest_fit(X,Y):xbar=sum(X)/len(X)ybar=sum(Y)/len(Y)n=len(X)#orlen(Y)numer=sum([xi*yiforxi,yiinzip(X,Y)])-n*xbar*y......