数组01
Posted 浩特
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组01相关的知识,希望对你有一定的参考价值。
题目:返回一个整数数组中最大子数组的和。
要求:
1、 输入一个整形数组,数组里有正数也有负数。
2、 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。
3、 求所有子数组的和的最大值。要求时间复杂度为O(n)
设计思想:
核心算法:动态规划。
源代码:
1 //数组1 2 //胡浩特、朱子嘉 2016/3/21 3 4 #include<iostream> 5 using namespace std; 6 7 int MaxSum3(int a[], int n){//优化方案 时间O(n) 空间 O(1) 8 //int A,N; 9 int nStart = a[n - 1]; 10 int nAll = a[n - 1]; 11 for (int i = n - 2; i >= 0; i--) 12 { 13 if (nStart<0) 14 nStart = 0; 15 nStart += a[i]; 16 if (nStart>nAll) 17 nAll = nStart; 18 } 19 return nAll; 20 } 21 int main() 22 { 23 24 int i, length; 25 cout << "请输入数组长度:"; 26 cin >> length; 27 int a[50]; 28 cout << "请输入数组值:"; 29 30 for (i = 0; i < length; i++) 31 { 32 cin >> a[i]; 33 } 34 35 36 cout<<MaxSum3(a, length)<<endl; 37 return 0; 38 }
以上是关于数组01的主要内容,如果未能解决你的问题,请参考以下文章
Alamofire 文件上传出现错误“JSON 文本未以数组或对象开头,并且允许未设置片段的选项”
错误代码:错误域 = NSCocoaErrorDomain 代码 = 3840“JSON 文本没有以数组或对象和允许未设置片段的选项开头。”