算法学习-最大连续子数组
来源:互联网 发布:node v6.11.1 x64.msi 编辑:程序博客网 时间:2024/05/19 15:23
题目
分析给定一个数组A[0,...,n-1],求A的连续子数组,使得孩子数组的和最大。
例如数组:1,-2,3,10,-4,7,2,-5的最大子数组是:3,10,-4,7,2
记S[i]为以A[i]为结尾的数组中和最大的子数组
则:S[i+1]=max(S[i]+A[i+1],A[i+1])
S[0]=A[0]
遍历i:0<=i<=n-1
动态规划:最优子问题
时间复杂度:O(n)
#include "stdafx.h"#include <iostream>#include <list>int MaxSubarray(const int* a, int size){if (!a || size <= 0)return 0;int sum = a[0]; // 当前子串的和int result = sum; // 当前找到的最优解for (int i = 1; i < size; i++){if (sum > 0){sum += a[i];}else{sum = a[i];}result = (sum > result) ? sum : result;}return result;}int _tmain(int argc, _TCHAR* argv[]){int a[] = {1,-2,3,10,-4,7,2,-5};int m = MaxSubarray(a, sizeof(a)/sizeof(int));std::cout<<m<<'\n';system("pause");return 0;}
0 0
- 算法学习-最大连续子数组
- 算法学习-零子数组,最大连续子数组
- 算法 | 最大连续子数组
- 算法导论 - 最大和连续子数组
- PHP算法之最大连续子数组
- 【算法】最大连续子数组和
- 求解最大连续子数组的算法
- 最大连续子数组
- 最大连续子数组
- 最大连续子数组
- 最大连续子数组
- 最大连续子数组
- 最大连续子数组
- 最大连续子数组
- 最大连续子数组
- 算法学习-数字连续的子数组
- 算法学习-连续子数组求和最大值
- 算法学习-连续子数组求和最大值
- JS唤醒Android APP(包括在外部浏览器和WebView)
- Java基础第一阶段——02_Java语言基础_关键字&变量&运算
- 最短路径——SPFA算法(蓝桥杯试题集)
- java基础-集合框架9 增强for循环
- 带外数据
- 算法学习-最大连续子数组
- 动态添加控件
- tomcat8 在Centos7 安装之后通过IP+manager访问出现403问题
- MFC AfxGetMainWnd()
- header函数使用注意
- 设计模式收藏了
- java poi读取excel表格数据
- MediaPlayer播放音乐
- C++ ofstream和ifstream详细用法