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)
  • 相关阅读:
    守护进程(Daemon)
    Socket select的用法
    被误解的C++——磨刀不误砍柴工
    C++ 虚函数表解析
    进程间通信IPC
    pthread_join函数及linux线程
    详细讲解C++ 类的继承
    Trilogy公司的笔试题
    linux下fork的使用
    Ruby 编程规范
  • 原文地址:https://www.cnblogs.com/yawenw/p/12297336.html
Copyright © 2011-2022 走看看