from:https://www.shiyanlou.com/courses/running/102

输入一组整数,求出这组数字子序列和中的最大值,只要求出最大子序列的和,不必求出最大值对应的那个序列。

序列:-2 11 -4 13 -5 2 -5 -3 12 -9 最大子序列和为21

序列:0 -3 6 8 -20 21 8 -9 10 -1 3 6 5 最大子序列和为43

代码如下:

 1 #include<iostream>
 2 using namespace std;
 3 int main()
 4 {
 5     int n,a[20];
 6     cout<<"input n and array"<<endl;
 7     cin>>n;
 8     for(int i=0;i<n;i++)
 9     {
10         cin>>a[i];
11     }
12     int wai_sum=0;
13     int li_sum=0;
14     for(int i=0;i<n;i++)
15     {
16         li_sum=0;
17         int temp=0;
18         int flag=-1;
19         for(int j=i;j<n;j++)
20         {
21             temp = temp + a[j];
22             if(a[j]<=0)
23             {
24                 continue;
25             }
26             if(li_sum<temp)
27             {
28                 li_sum = temp;
29             }
30         }
31         if(wai_sum<li_sum)
32             wai_sum = li_sum;
33     }
34     cout<<wai_sum<<endl;
35     return 0;
36 }

另外的一种时间复杂度更低的方法:

 1 #include<iostream>
 2 using namespace std;
 3 int main()
 4 {
 5     int a[10] = {-2,11,-4,13,-5,2,-5,-3,12,-9};
 6     int b,sum;
 7     b=a[0];
 8     sum = a[0];
 9     for(int i=0;i<10;i++)
10     {
11         if(b>0)
12         {
13             b+=a[i];
14         }
15         else
16         {
17             b = a[i];
18         }
19         if(b>sum)
20             sum = b;
21     }
22     cout<<sum<<endl;
23     return 0;
24 }

转载于:https://www.cnblogs.com/niceforbear/p/4521277.html

求数组子序列和最大值相关推荐

  1. C语言求数组中的最大值

    该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处 本文章博客地址:https://cplusplus.blog.csdn.net/article/details/105163865 C ...

  2. Java学习小程序(8)求数组元素的最大值并放在最后一位

    求数组元素的最大值并放在最后一位,创建一个10个长度的数组,随机生成0-99之间的数值放入数组,找出最大值,将数组的长度扩容为11,把最大值赋给最后一位. //求数组的最大值放在最后一位 import ...

  3. 求数组里面的最大值和最小值

    题目: 求数组里面的最大值和最小值 比如:数组 1,2,3,4,5 最大值是5,最小值是1 代码实现: #include <stdio.h> int max,min; void getMa ...

  4. 求数组中数的最大值、最小值(C语言)

    求数组中数的最大值.最小值(C语言) #include<stdio.h>void main(void) {int num[10],i,imax,imin,imaxp,iminp;for(i ...

  5. 编程之美4:求数组中的最大值和最小值

    方法1:暴力方法 遍历一遍数组,比较2*N次求出最大值和最小值 方法2:改进方法 (破坏了原数组)             遍历一遍数组使得下标为偶数的元素较下标为奇数的元素大,再分别求出最大值和最小 ...

  6. 利用函数求数组中的最大值

    利用函数求数组中的最大值 <!DOCTYPE html> <html lang="en"><head><meta charset=&quo ...

  7. 求数组中的最大值和最大值的索引

    前天将数据的一些遍历方法共享出来了,今天还是接着共享有关数组的吧. using System; using System.Collections.Generic; using System.Text; ...

  8. 【python】 求数组最小值,最大值,最小偶数,最大奇数

    [python] 求数组最小值,最大值,最小偶数,最大奇数 lst = [3, 6, 1, 8, 1, 9 , 8,10,21] min=lst[0] max=lst[0] mi=lst[0] ma= ...

  9. JAVA 求数组中的最大值

    package Code411;//求数组的最大值public class CodeArrayMax { public static void main(String[] args) { int ar ...

  10. 问题 H: 编写函数:求数组中的最大值 (Append Code)

    题目描述 现有一个不超过N个元素的数组,其中可能有重复数据出现.求该数组中的最大值以及最大值所在的下标. 结合"Append Code"中的代码,编写以下函数: 原型:int ge ...

最新文章

  1. mysql 1236_Mysql主从同步Last_IO_Errno:1236错误解决方法
  2. C++预编译头文件 bits/stdc++.h
  3. java heap space 解决方法_Java静态方法/变量,非静态方法/变量的区别,今天一并帮你解决
  4. SparkStreaming “Could not read data from write ahead log record” 报错分析解决
  5. Istio 1.10 发布及官网改版
  6. Spring MVC中的验证组
  7. VMware15设置快照回到指定时间的状态
  8. MogDB如何配置IPv6?
  9. Android 系统性能优化(72)-----App启动优化
  10. 使用变量的值作为JS对象的属性名,从而获取其对应的值
  11. 如何使用 Firefox 阻止指纹识别的侵扰?
  12. mysql 主从复制日志_mysql主从复制基于日志复制
  13. [翻译].NET委托:一个C#睡前故事 [转]
  14. fastfds文件服务器搭建
  15. 微软Windows字体被诉侵权?我们来聊聊有关网站侵权被诉的那些事。
  16. JavaScript 日期和时间基础知识
  17. Jlink下使用swd
  18. java实现多文件批量下载总结
  19. 【搜索引擎】Apache Solr 神经搜索
  20. 概率论减法公式的证明

热门文章

  1. 尽点力,虽然也不一定有用
  2. 看小龙哥演讲之感悟!
  3. 湖北经济学院计算机专业全国排名,2018年湖北经济学院世界排名、中国排名、专业排名...
  4. 最大子序列和算法C语言,最大子序列和O(N)算法简单分析『神兽必读』
  5. 如何用python处理pdf_如何使用Python玩转PDF各种骚操作?
  6. 根据录入的计算公式计算_预制桩极限承载力标准值快速计算方法研究
  7. python 修改文件属性_Python实现在Windows平台修改文件属性
  8. openstack热添加磁盘
  9. tomcat 访问权限设置
  10. 每日一九度之 题目1091:棋盘游戏