• 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 };
  • 相关阅读:
    Android中margin和padding的区别
    自动编号
    5s6r
    手动上传文件到数据表
    FTP from Axapta
    vba 图片
    右键菜单
    x++ 手动while select 表
    传输文件从客户端到服务器
    address
  • 原文地址:https://www.cnblogs.com/sword-/p/7997931.html
Copyright © 2020-2023  润新知