zoukankan      html  css  js  c++  java
  • leetcode53 Maximum Subarray

     1 """
     2 Given an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum.
     3 Example:
     4 Input: [-2,1,-3,4,-1,2,1,-5,4],
     5 Output: 6
     6 Explanation: [4,-1,2,1] has the largest sum = 6.
     7 """
     8 """
     9 最开始的想法复杂了:建一个n*n的二维数组,存储[i,j]的和
    10 因为最后的output只要和的值,不需要求是哪些序列,所以此想法
    11 实现起来麻烦,效率还低
    12 """
    13 """
    14 正确的算法应为:贪心算法
    15 subMaxSum = max(nums[i]+nums[i-1], nums[i])
    16 nums[i] = subMaxSum
    17 保证num[i]存的是i之前最大的和
    18 """
    19 
    20 class Solution:
    21     def maxSubArray(self, nums):
    22         length = len(nums)
    23         for i in range(1, length):
    24             #当前值的大小与前面的值之和比较,若当前值更大,则取当前值,舍弃前面的值之和
    25             subMaxSum = max(nums[i]+nums[i-1], nums[i])
    26             nums[i] = subMaxSum#将当前和最大的赋给nums[i],新的nums存储的为和值
    27         return max(nums)
  • 相关阅读:
    CentOS安装系统时硬盘分区建议
    Linux下的gpt分区
    如何解决Win10账户没有了管理员权限
    redis数据的清空以及回滚
    禅道的作用以及安装
    Java数组的内存图
    Java中的内存划分
    进制
    Java数组
    Java方法的重载(Overload)
  • 原文地址:https://www.cnblogs.com/yawenw/p/12297336.html
Copyright © 2011-2022 走看看