zoukankan      html  css  js  c++  java
  • leetcode-53.最大子序和

    leetcode-53.最大子序和

    题意

    给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

    示例:

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

    算法(DP O(n))

    定义待返回变量 ans(初值nums[0]), 中间累加变量 sum(初值0)

    遍历给定数组

    如果sum大于0,sum求和当前元素值;否则,当前元素值赋值sum

    如果sum大于ans, sum赋值ans

    code

     1 class Solution {
     2 public:
     3     int maxSubArray(vector<int>& nums) {
     4         int ans = nums[0];
     5         int sum = 0;
     6         for(auto num : nums)
     7         {
     8             if(sum > 0)
     9             {
    10                 sum += num;
    11             }
    12             else
    13             {
    14                 sum = num;
    15             }
    16             if(sum > ans)
    17             {
    18                 ans = sum;
    19             }
    20         }
    21         return ans;
    22     }
    23 };
  • 相关阅读:
    积累
    AnkhSVN使用记录
    时间戳
    Nhibernate
    Css的sb问题
    ajax
    WAS资料收集
    CryStal资料收集
    Decorator模式
    MSDN WebCast网络广播全部下载列表
  • 原文地址:https://www.cnblogs.com/yocichen/p/10292001.html
Copyright © 2011-2022 走看看