连续子数组的最大和
来源:互联网 发布:智慧树网络课答案 编辑:程序博客网 时间:2024/04/28 14:13
题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。
思路:
1)如果当前得到的和是个负数,那么这个和在接下来的累加中应该抛弃并重新清零,不然的话这个负数将会减少接下来的和。
2)当我们加上一个正数时,和会增加;当我们加上一个负数时,和会减少。
3)当前值与最大值比较,大于时要更新最大值
#include<iostream>using namespace std;bool flag=false;int FindSubArray(int *arr, int len){ if(arr==NULL||len<=0) { flag=true; return 0; } flag=false; int curr=0; int sum=0x80000000; for(int i=0;i<len;i++) { if(curr<=0) curr=arr[i]; else curr+=arr[i]; if(curr>sum) sum=curr; } return sum;}int main(){ int arr[8]={1,-2,3,10,-4,7,2,-5}; int result=0; result=FindSubArray(arr,8); cout<<result<<endl; return 0;}
- 数组连续子数组的和最大
- 数组连续子数组的最大和
- 连续子数组的最大和
- 连续子数组的最大和
- 连续子数组的最大和
- 求连续子数组的最大和
- 连续子数组的最大和
- 求连续子数组的最大和
- 求连续子数组的最大和
- 连续子数组的最大和
- 连续子数组的最大和
- (8)连续子数组的最大和
- 求连续子数组的最大和
- 求连续子数组的最大和
- 连续子数组的最大和
- 求连续子数组的最大和
- 连续子数组的最大和
- 连续子数组的最大和
- spring 基础1
- C语言------排序算法------归并排序(六)
- 嵌入式系统 Boot Loader 技术内幕
- uva10006 - Carmichael Numbers
- Java读取文件方法 笔记
- 连续子数组的最大和
- 学习笔记(一)插入排序
- java web获取上传的文件在服务器端的路径
- MingW跨平台编译QT VTK
- zoj 3601
- 函数调用规则
- 写在最前面
- 杭电2027
- HOG特征