求子数组的最大和
来源:互联网 发布:自己动手写网络爬虫pdf 编辑:程序博客网 时间:2024/05/16 18:18
题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值以及子数组的上下边界。要求时间复杂度为O(n)。
自己写的代码如下:
#include <iostream.h>#define ARR_SIZE 10//求最大和int maxSubArr(int* arr, int n, int& begin, int& end){int curSum = 0;int maxSum = 0;int curBegin = 0;int curEnd = 0;begin = end = 0;for (int i=0; i<n; i++){ curSum += arr[i];if (curSum < 0){curSum = 0;if (i+1<n){curBegin = curEnd = (i+1);}}else if (curSum > maxSum){maxSum = curSum;begin = curBegin;end = curEnd;curEnd++;}else{curEnd++;}}return maxSum;}void main(){int arr[ARR_SIZE] = {1,-2,3,-1};int a,b;cout<<maxSubArr(arr, ARR_SIZE,a,b)<<endl;cout<<arr[a]<<" "<<arr[b]<<endl;}
- 求数组最大子数组的和
- 求子数组的最大和
- 面试---求子数组的最大和
- 求子数组的最大和
- 求子数组的最大和
- 求子数组的最大和
- 求子数组的最大和
- 求子数组的最大和
- 求子数组的最大和
- 求子数组的最大和
- 求子数组的最大和
- 2.求子数组的最大和
- 3.求子数组的最大和
- 求子数组的最大和
- 3、求子数组的最大和
- 求子数组的最大和
- 求子数组的最大和
- 求子数组的最大和
- 常用字符串编码转换的函数
- 为赋新词强说愁之一(儿时的那些事儿啊)
- DirectFB在ubuntu10.04 下的安装及样例程序运行成功体现
- (转)RichEdit 的用法
- Javascript 实现TreeView
- 求子数组的最大和
- Windows Media Player播放器(VC++ 2008)
- JDK配置
- 熟悉Linux的用户掌握AIX的快速通道
- C/C++头文件.h和没有.h的区别
- uva 10878 Decode the tape
- windows下ProcessBuilder和Runtime.getRuntime().exec()对空格的通用处理
- 在Source Insight中看Python代码
- 二叉搜索树(BST)的基本操作