当前位置: 首页 > 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/179360.html

相关文章:

  • 邵阳网站优化网络平台推广运营公司
  • 烟台网站建设ytwzjs现在的seo1发布页在哪里
  • 网站建网站一个具体网站的seo优化
  • 做网站要钱的吗自建站seo如何做
  • 用内网穿透做网站可以被收录吗网络营销的营销方式
  • 做返利网站如何操作关键词挖掘站长
  • 徐州网站建设技术公司网络推广方案
  • 网站建设题库含答案网站关键词优化方法
  • 创建一个新的公司网站推广途径有哪些
  • 长春外贸网站建设4435东莞营销型网站建设
  • 吉林公司做网站seo优化工作内容做什么
  • wordpress 农业主题seo是什么职务
  • 怎么制作网站教程下载中国十大互联网公司排名
  • 嘉兴网站搭建seo短视频网页入口引流下载
  • 做网站公司怎么拉客户学校seo推广培训班
  • 霸县网站建设合肥品牌seo
  • 汕头有建网站公司吗资源企业网站排名优化价格
  • 免费签名设计软件迅速上排名网站优化
  • 平阳高端网站建设最快新闻资讯在哪看
  • 国外做设计的网站汕头网站排名
  • 天津网站建设培训学校电脑培训班价目表
  • 平台制作专业网站制作长春网络优化哪个公司在做
  • 软件公司网站建设东莞网站建设推广平台
  • 电影院卖品套餐计划成都seo技术经理
  • 珠海移动网站建设公司排名互联网营销方案策划
  • 网站建设制作 南京公司怎么优化
  • 深圳网站制作公司人才招聘中国十大seo
  • 免费10g网站空间广告联盟怎么加入
  • 营销型网站有哪些类型seo工作职位
  • 上海电商网站开发启动互联全网营销推广