zoukankan      html  css  js  c++  java
  • 53. Maximum Subarray

    Find the contiguous subarray within an array (containing at least one number) which has the largest sum.

    For example, given the array [-2,1,-3,4,-1,2,1,-5,4], the contiguous subarray [4,-1,2,1] has the largest sum = 6.

    在一个数组中找到连续的子数组(至少包含一个数字)。

    例如,给定数组[-2,1,-3,4,-1,2,1,-5,4]连续的子数组[4,-1,2,1]具有最大的sum = 6

    (1)思想1:定义两个变量result和cursum,其中result保存最终要返回的结果,即最大的子数组之和,cursum初始值为0,每遍历一个数字nums[i],比较curSum + nums[i]和nums[i]中的较大值存入cursum,然后再把res和cursum中的较大值存入result,以此类推直到遍历完整个数组,可得到最大子数组的值存在result中,代码如下:

     1 class Solution {
     2 public:
     3     int maxSubArray(vector<int>& nums) {
     4         int cursum=0;
     5         int result=INT_MIN;
     6         for(int i=0;i<nums.size();i++)
     7         {
     8             cursum=max(cursum+nums[i],nums[i]);
     9             result=max(result,cursum);
    10         }
    11         return result;
    12         
    13     }
    14 };
  • 相关阅读:
    Interesting Finds: 2008.03.19
    Interesting Finds: 2008.03.11
    Interesting Finds: 2008.03.27
    Interesting Finds: 2008.03.21
    每日日报
    每日日报
    每日日报
    每日日报
    idea怎么创建properties文件
    移动端rem.js
  • 原文地址:https://www.cnblogs.com/sword-/p/7997931.html
Copyright © 2011-2022 走看看