关关的刷题日记 22 – Leetcode 53. Maximum Subarray

关关的刷题日记 22 – Leetcode 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

题目的意思是找出连续子序列的最大和。

思路

思路:典型的动态规划问题,以第i个数为结尾的连续子序列最大和sum[i] 是 (sum[i-1]+nums[i], nums[i])中较大的数。不断更新re用来存前i个数中和最大的连续子序列的和。时间复杂度O(n).


class Solution {
public:
    int maxSubArray(vector<int>& nums) {
        int sum=nums[0], re=nums[0];
        for(int i=1; i<nums.size();i++)
        {
            sum=max(sum+nums[i],nums[i]);
            re=max(sum,re);
        }
        return re;
    }
};


照顾好自己的身体,控制好自己的情绪,加油!

以上就是关关关于这道题的总结经验,希望大家能够理解,有什么问题可以在我们的专知公众号平台上交流或者加我们的QQ专知-人工智能交流群 426491390,也可以加入专知——Leetcode刷题交流群(请先加微信小助手weixinhao: Rancho_Fang)。 同时请,关注我们的公众号,获取最新关于专知以及人工智能的资讯、技术、算法等内容。扫一扫下方关注我们的微信公众号。

图片

展开全文
相关主题
Top
微信扫码咨询专知VIP会员