当前位置: 首页 > news >正文

郑州做网站好的公/企业软文怎么写

郑州做网站好的公,企业软文怎么写,电子商务平台经营者,山东菏泽网站建设、 审题: 本题需要我们找到给定数组中子段之和和最大的sum值 思路: 方法一:暴力解法 我们可以使用双层for循环,第一层循环负责遍历每一个数组元素,然后分别以他们为子段起点,第二层循环从第一层循环的索引开…

审题:
本题需要我们找到给定数组中子段之和和最大的sum值

思路:

方法一:暴力解法

我们可以使用双层for循环,第一层循环负责遍历每一个数组元素,然后分别以他们为子段起点,第二层循环从第一层循环的索引开始接着往下遍历累加结果到sum中,且遍历的时候不断用max方法让sum与answer进行比对,如果出现sum小于0就停止当前子段和的搜索,因为

即使后面的数再大,我们前面的sum也对后面的数产生了负作用。
方法二:贪心

其实我们不需要进行两层for循环,一旦出现sum小于0,说明前面一段的所有元素都不可能是最大子段和的开头索引。

贪心策略:从开头索引开始进行遍历,一旦sum小于0就将sum置为0,接着往下遍历

贪心策略证明:

假设出现了sum小于0的那一段元素存在最大子段和的初始索引

情况1:最大子段在sum内

Sak<Sck,所以Sak-Sck < 0,即Sac<0。而ac段的总和不会小于0,因为如果他小于0(也就是此时sum就小于0了),那么就不会存在Sab段,直接在Sac段就截断了

情况2:最大子段不全在sum内

我们知道:Scb>Sab

若Sab>Scb,最大子段和的开始位置就是a

而此时由于Sac+Scb = Sab,我们得出Sac又要小于0,同理此时也是不合理的

综上:最大子段和的开始位置不会出现在sum小于0的数据段中,可以直接舍弃

解题:
 

#include<iostream>
#include<algorithm>
using namespace std;
const int N = 2e5 + 10;
typedef long long ll;
int n;
int a[N];
ll answer = -1e7;
ll sum;
int main()
{//数据录入cin >> n;for (int i = 1; i <= n; i++){cin >> a[i];}//遍历查找for (int i = 1; i <= n; i++){sum += a[i];answer = max(sum, answer);if (sum < 0)sum = 0;}cout << answer << endl;return 0;
}

P1115 最大子段和 - 洛谷

http://www.whsansanxincailiao.cn/news/32019618.html

相关文章:

  • 教人做衣服得网站有哪些/长沙靠谱关键词优化公司电话
  • 一家只做卫生巾的网站/手机怎么搭建网站
  • 做游戏钓鱼网站/百度广告联盟收益
  • 四川省住建厅特种作业证报名/绍兴seo排名
  • 华为云自助建站/青岛新闻最新消息
  • 做一个交友网站怎样做需要多少资金/中国搜索引擎排名
  • 深圳企业网站建设设计制作方案/百度做网站推广的费用
  • 网站源代码怎么上传/百度seo教程视频
  • 广州海珠区地图/郑州网站优化
  • 汕头网站关键排名/网络营销推广方案前言
  • 口碑好的网站建设服务/完整企业网站模板
  • 网站建设运行环境/如何销售自己产品方法有哪些
  • 泉州网站建设方案外包/搜索 引擎优化
  • 网页微信版下载/win7系统优化大师
  • 淘宝联盟建网站/建立一个网站需要多少钱
  • 焦作市建设工程网站/html底部友情链接代码
  • 美国网站人肉收做/上海网络seo
  • 青岛建网站哪个好/厦门seo厦门起梦
  • 营销型网站建设标准/站长之家seo一点询
  • 小型商城网站/怎么制作网站教程
  • 微网站开发工具/网店代运营商
  • 网站建设公司方案/百度推广一天费用200
  • 深圳官网建设公司/西安seo网站关键词优化
  • 临沂手机端建站模板/湖南seo优化哪家好
  • 龙华做棋牌网站建设哪家好/上海短视频seo优化网站
  • 成都创新互联做网站/谷歌手机版下载安装
  • .我爱你 域名网站/站长统计app下载大全
  • 动态网站制作报价/网络营销的特点是什么?
  • 代做网站平台/网络营销费用预算
  • 云主机可以做网站吗/自助建站系统源码