博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 53. Maximum Subarray最大子序和 (C++)
阅读量:6830 次
发布时间:2019-06-26

本文共 933 字,大约阅读时间需要 3 分钟。

题目:

Given an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum.

Example:

Input: [-2,1,-3,4,-1,2,1,-5,4],Output: 6Explanation: [4,-1,2,1] has the largest sum = 6.

Follow up:

If you have figured out the O(n) solution, try coding another solution using the divide and conquer approach, which is more subtle.

分析:

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

我们可以将返回的结果设为INT_MIN,设一个tempsum用来记录当前和,遍历数组,将元素添加进当前和,如果当前和大于返回结果,就将返回结果更新成当前和,如果当前和小于0,我们就将当前和重置为0,因为如果当前和是负数的话,对于找最大和是没有帮助的,可以认为这段是无用的,可以舍弃。

程序:

class Solution {public:    int maxSubArray(vector
& nums) { int res = INT_MIN; int tempSum = 0; for(auto i:nums){ tempSum += i; if(tempSum > res) res = tempSum; if(tempSum < 0) tempSum = 0; } return res; }};

转载于:https://www.cnblogs.com/silentteller/p/10847420.html

你可能感兴趣的文章
Actionbarsherlock 简明教程
查看>>
Windows 8.1 新增控件之 DatePicker
查看>>
微信利用PHP创建自定义菜单的方法
查看>>
计算机是如何启动的?
查看>>
Origami
查看>>
初试ASP.NET Web API/MVC API(附Demo)
查看>>
人脸识别算法初次了解
查看>>
设计模式(十)组合(结构型)
查看>>
JAVA复制文件最快的算法
查看>>
UICamera(NGUI Event system)原理
查看>>
sudo nopasswd
查看>>
用自己的话描述wcf中的传输安全与消息安全的区别(二)
查看>>
99 Lisp Problems 列表处理(P1~P28)
查看>>
实用图片滑块,传送带,幻灯片效果【附源码】
查看>>
Bluez SPP实现代码分析(转)
查看>>
android中给TextView或者Button的文字添加阴影效果
查看>>
读《被投资人“送”入看守所》一文有感(转)
查看>>
生产环境线上測试的慘淡人生
查看>>
代码阅读分析工具Understand 2.0试用
查看>>
Linux Load average负载详细解释
查看>>