博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
现代程序设计 作业1
阅读量:5239 次
发布时间:2019-06-14

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

 

个人信息

  github:buaazmac

  使用教科书:代码大全

最大子数组和思路

  利用贪心算法的思路解决。对于一段可能是最大子数组的子数组,它应该具有如下性质:从该子数组第一个元素到任一元素的和都必须大于零。这用反证法就能证明,如果有段的和是小与零的,那么之后这段子数组的和就必然大于当前子数组的和。通过这个性质,我们就只要从头到尾遍历数组,记录当前连续元素的和,如果当前的和小于零,就把和清零。最后记录下遍历过程中出现的最大和就好了。

  简单的测试样例:

  

  运行结果:

  

#include 
#include
#include
using namespace std;int main(){ int i,n,a,sum=0,ans=0; freopen("test.in","r",stdin); // freopen("test.out","w",stdout); cin>>n; for (i=1;i<=n;i++) { cin>>a; if (sum<0) sum=0; sum+=a; if (sum>ans) ans=sum; } cout<
<

 

 

转载于:https://www.cnblogs.com/z-mac/p/3329616.html

你可能感兴趣的文章
简单的SQL语句
查看>>
linux grep 搜索查找
查看>>
指针实验报告
查看>>
for循环语句
查看>>
python-加密
查看>>
实用小命令汇总(个人使用)
查看>>
Not enough free disk space on disk '/boot'(转载)
查看>>
android 签名
查看>>
堆 栈
查看>>
Kth Smallest Element in Unsorted Array
查看>>
vue项目中使用百度统计
查看>>
第 十一 次作业
查看>>
利用PHP SOAP实现WEB SERVICE[转载]
查看>>
[leetcode DP]120. Triangle
查看>>
数组filter()参数详解,巧用filter()数组去重
查看>>
查询项目中未被使用的js、css和图片
查看>>
Cookie.js
查看>>
Django Blog学习笔记(一)
查看>>
什么是“堆”,"栈","堆栈","队列",它们的区别
查看>>
什么是lambda函数?它有什么好处?
查看>>