数组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的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段10—— 数组的响应式方法

Alamofire 文件上传出现错误“JSON 文本未以数组或对象开头,并且允许未设置片段的选项”

web代码片段

错误代码:错误域 = NSCocoaErrorDomain 代码 = 3840“JSON 文本没有以数组或对象和允许未设置片段的选项开头。”

javascript常用代码片段

为什么我不能在此片段中生成唯一对象数组?