第二题 求数组中和最大的子数组和其对应的位置
来源:互联网 发布:java中策略模式 编辑:程序博客网 时间:2024/04/29 22:27
输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,因此输出为该子数组的和18。
思路来自http://blog.csdn.net/v_july_v/article/details/6543438
//子数组最大的和并输出是哪几个数#include <iostream>#include <assert.h>using namespace std;void getsum(int a[],int n){assert(a!=nullptr);int maxsum=0;int sum=0;int beg=0,end=0;for (int i=0;i<n;++i){if (sum<=0){sum=a[i];beg=i;}else{sum+=a[i];}if (maxsum<=sum){maxsum=sum;end=i;}}cout<<beg<<endl;cout<<end<<endl;cout<<maxsum<<endl;}int main(){int a[]={1,-2,3,10,-4,7,2,-5};int n=7;getsum(a,n);return 0;}
0 0
- 第二题 求数组中和最大的子数组和其对应的位置
- 求数组中和最大的子数组
- 求数组中和最大的子序列
- 求数组中和最大的子序列
- 求数组中和最大的子数组(数组中和最大的子串)
- 求数组中和最大的子数组(数组中和最大的子串)
- 求连续子数组的最大和,并记录其起始结束位置
- 求整数数组中和最大的子数组
- 求数组中和最大的子数组【算法】
- C#求数组中和最大的连续子数组
- 求整数数组中和最大的子数组
- 求数组中和最大的子数组与始末下标
- 求最大子数组的和,以及求该最大子数组的起始位置和末尾位置
- 求数组中和最大的子数组并输出子数组序列
- 分治算法求最大子数组以及其对应的下标<c/c++源代码>
- 求数组最大子数组的和
- 寻找数组中和最大的子序列
- 数组中和最大的递增子序列
- linux驱动头文件位置的说明
- FS_S5PC100平台上Linux Camera驱动开发详解
- 如何查看linux的文件系统block size
- 编程之美热身赛题目1 : 传话游戏 Java实现
- SQL Error: 1064, SQLState: 42000数据库异常
- 第二题 求数组中和最大的子数组和其对应的位置
- HDU 1358字符串循环节问题 ,next数组
- ReportStudio入门教程(十三) - 列表的复杂表头之隐藏
- VC++6.0——》error LNK2001: unresolved external symbol __beginthreadex
- 树状数组优化 之 uva299
- Wireshark抓包工具使用教程以及常用抓包规则
- startActivityForResult()、onActivityResult()和setResult()使用
- 权限管理——RBAC模型总结
- grdblend---错误