面试常见算法习题3
2013-10-01 23:07
417 查看
/*3.求子数组的最大和 题目: 输入一个整形数组,数组里有正数也有负数。 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。 求所有子数组的和的最大值。要求时间复杂度为O(n)。 例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2, 因此输出为该子数组的和18。*/ //July 2010/10/18 #include <iostream.h> int maxSum(int* a, int n) { int sum=0; int b=0; for(int i=0; i<n; i++) { if(b<0) b=a[i]; else b+=a[i]; if(sum<b) sum=b; } return sum; } int main() { int a[10]={1,-8,6,3,-1,5,7,-2,0,1}; cout<<maxSum(a,10)<<endl; return 0; } /* 运行结果,如下: 20 Press any key to continue */
相关文章推荐
- 面试常见算法习题1
- 面试常见算法习题2
- 面试10大算法汇总+常见题目解答(Java)
- 面试常见算法总结
- 《慕课网玩转算法面试》笔记及习题解答3.5~3.6
- 前端面试中的常见的算法问题
- 面试10大算法汇总+常见题目解答
- 编程面试过程中常见的10大算法
- 面试常见算法1:有序数组去重
- 常见算法面试链表
- 机器学习常见算法个人总结(面试用)
- 《慕课网玩转算法面试》笔记及习题解答2
- 面试10大算法汇总+常见题目解答(Java)
- 面试常见的算法
- Java求职面试准备之常见算法
- 机器学习常见算法个人总结(面试用)
- 前端面试中常见的算法问题总结
- 青蛙跳台阶问题,常见面试算法题,斐波那契数列(Fibonacci Sequence)
- 《慕课网玩转算法面试》笔记及习题解答7.4~7.6
- 编程面试过程中常见的10大算法