国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

LeetCode Maximum Subarray

2019-11-10 18:26:15
字體:
來源:轉載
供稿:網(wǎng)友

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.

思路一:暴力搜索,最笨的方法

代碼如下:

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

已哭暈在廁所,想想怎么優(yōu)化

思路二:尋找特性,進行減枝操作。當sum小于0時,其加上后面的數(shù)只會使得sum更小,所以此時sum與max進行對比,然后就sum置為0,從下一個位置開始計算

代碼如下:

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


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 石河子市| 台北县| 中西区| 金沙县| 碌曲县| 富蕴县| 三穗县| 麻江县| 涡阳县| 博兴县| 杭锦后旗| 铜山县| 庄河市| 玉树县| 鄂温| 土默特左旗| 芷江| 阿荣旗| 峨山| 武邑县| 金阳县| 棋牌| 中方县| 罗城| 遵化市| 德安县| 安远县| 南昌县| 苏尼特左旗| 墨江| 南充市| 临武县| 广灵县| 新宁县| 闵行区| 江陵县| 年辖:市辖区| 西和县| 图木舒克市| 邵阳市| 乐陵市|