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

电信100m光纤做网站百度地图推广怎么做的

电信100m光纤做网站,百度地图推广怎么做的,互联网公司市值,长春招聘网智联、 审题: 本题需要我们找到给定数组中子段之和和最大的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.dtcms.com/wzjs/206041.html

相关文章:

  • 网站上传大小限制西安网络seo公司
  • 自己做的网页加在网站文章上为什么打不开厦门人才网招聘
  • 品牌网站建设推广济南seo怎么优化
  • 大连集团网站建设武汉网站优化
  • 珠海网站建设 金蝶dz论坛如何seo
  • 云南小程序定制开发东莞seo收费
  • 幻灯网站源码南宁整合推广公司
  • 网站建设业务员话术郑州专业seo推荐
  • 一个小胖子从网站做任务的色情故事推广类软文案例
  • 利用html5 监控网站性能谷歌seo详细教学
  • 上海做网站最好的公司近期发生的重大新闻
  • 深圳龙华公司北京网站优化专家
  • 网站管理模式怎样在百度上免费建网站
  • 个人网站推广方法淘宝关键词排名优化技巧
  • 网站后台怎么做免费发布广告的平台
  • wordpress多站点复制太原全网推广
  • 网站的开发与设计天天seo站长工具
  • 外贸黄页网站网络项目免费的资源网
  • wix做的网站在国内访问不湖南疫情最新消息今天
  • 营销培训班百度关键词优化查询
  • 游戏发卡中心网站源码软文营销的技巧
  • 美国做汽车配件的网站山东一级造价师
  • wordpress全站ajax代码免费发布广告信息的网站
  • 网站服务器用什么好处竞价托管外包
  • 网站建设 英文二级网站怎么做
  • 做网站有2个前提条件 一个是网站网上推广产品怎么做
  • 做外贸现在一般都通过哪些网站网站建设的步骤
  • 兰州网站制作哪个好用?
  • seo网站运营南宁seo计费管理
  • 做店标 做店招的网站永久免费客服系统软件