zoukankan      html  css  js  c++  java
  • lootcode_53:最大子列和

    给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
    
    示例:
    
    输入: [-2,1,-3,4,-1,2,1,-5,4]
    输出: 6
    解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。
    进阶:
    
    如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。
    
    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/maximum-subarray
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
    
    #暴力解法o(n*n)
    import sys
    class Solution:
        def maxSubArray(self, nums: List[int]) -> int:
            s_max= -sys.maxsize - 1
            length=len(nums)
            if length==1: return nums[0]
            for i in range(length):
                s=nums[i]
                s_max=max(s_max,s)
                for j in range(i+1,length):
                    s=s+nums[j]
                    s_max=max(s_max,s) 
                
            return s_max
    
    提交记录
    201 / 202 个通过测试用例
    状态:超出时间限制
    
    #o(n)
    import sys
    from typing import List
    class Solution:
        def maxSubArray(self, nums: List[int]) -> int:
            #贪心:取当前数与当前数之前和的较大值
            max_num=-sys.maxsize-1
            if not nums:return max_num
            cur=nums[0]
            max_num=max(max_num,cur)
            for i in range(1,len(nums)):
                cur=max(cur+nums[i],nums[i])
                max_num=max(max_num,cur)
            return max_num
    
    #o(n)破坏原数组
    class Solution:
        def maxSubArray(self, nums: List[int]) -> int:
            #动态规划:当前元素的前一个数大于0,则加上当前元素
            max_num=-sys.maxsize-1
            if not nums:return max_num
            sum=nums[0]
            max_num=max(max_num,sum)
            for i in range(1,len(nums)):
                if nums[i-1]>0:
                    nums[i]=nums[i]+nums[i-1]               
                max_num=max(max_num,nums[i])
            return max_num
    
  • 相关阅读:
    django 单表操作
    爬虫学习
    DRF源码分析
    DRF权限和频率限制
    DRF版本和认证源码分析
    request高级部分
    多任务异步爬虫及selenium模块使用
    requests基本使用
    爬虫介绍及环境
    Flask生命周期的源码流程
  • 原文地址:https://www.cnblogs.com/hqzxwm/p/14030368.html
Copyright © 2011-2022 走看看