求子数组的最大和
来源:互联网 发布:个体工商户域名备案 编辑:程序博客网 时间:2024/06/06 12:56
输入一个整形数组,里有正数负数。
数组中连续的一个或多整数组成子数组,每个子数组都有一个和。
求所有子数组的和最大值。要时间复杂度为 O(n)。
例如输入的数组为 1,-2,3,10,-4,7,2,-5,和最大的子数组为3,10,-4,7,2。
数组中连续的一个或多整数组成子数组,每个子数组都有一个和。
求所有子数组的和最大值。要时间复杂度为 O(n)。
例如输入的数组为 1,-2,3,10,-4,7,2,-5,和最大的子数组为3,10,-4,7,2。
因此输出为该子数组的和 18 。
#include <iostream>using namespace std;//遍历求和,当和为负数时置零后继续求和//求和过程中保存最大值int maxsum_subarrary(int data[],int len){int sum = 0,result = -(1<<31);//result初始化为int型最小负数,以处理数组元素全为负数的情况for(int i=0; i<len; ++i){sum += data[i];if(result<sum) result = sum;if(sum<0) sum = 0;}return result;}int main(){int data[] = {1,-2,3,10,-4,7,2,-5};int data1[] = {-1,-2,-3,-4};cout << "The max sum is " << maxsum_subarrary(data,sizeof(data)/sizeof(int)) << endl;cout << "The max sum is " << maxsum_subarrary(data1,sizeof(data1)/sizeof(int)) << endl;return 0;}
0 0
- 求数组最大子数组的和
- 求子数组的最大和
- 面试---求子数组的最大和
- 求子数组的最大和
- 求子数组的最大和
- 求子数组的最大和
- 求子数组的最大和
- 求子数组的最大和
- 求子数组的最大和
- 求子数组的最大和
- 求子数组的最大和
- 2.求子数组的最大和
- 3.求子数组的最大和
- 求子数组的最大和
- 3、求子数组的最大和
- 求子数组的最大和
- 求子数组的最大和
- 求子数组的最大和
- Oracle查询表结构的常用语句
- 异常2error C2664: “sendto”: 不能将参数 2 从“CString”转换为“const char *”
- 用sockaddr_in 而不用sockadd的原因
- 【环境配置】SVN图标不显示问题终极解决方案
- Java接口和Java抽象类
- 求子数组的最大和
- One-day-one-program(7)之顺序栈的实现
- Android应用程序图标大小说明
- 批处理解决Ant自动下载CVS项目并打包
- 获取DataRow[]的值
- ios--OpenCV--标记姿态的模拟
- 截图工具类【】待修改
- performSelector调用方法和直接self 调用方法的区别
- IOS的NSUserDefaults和 android 的SharedPreference