Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Python中的最大非连续子数组_Python 3.x_Algorithm_Sub Array - Fatal编程技术网

Python 3.x Python中的最大非连续子数组

Python 3.x Python中的最大非连续子数组,python-3.x,algorithm,sub-array,Python 3.x,Algorithm,Sub Array,我必须使用Python定义一个具有最大和的递增非连续子数组。 例如,如果我有一个数组[5,2,4,3,7],那么我必须输出[2,4,7]。 给定的输出正在增加,在所有可能增加的子阵列中具有最大和。查看此代码: def def definished(A):#迭代函数以最大和为原则划分子序列 n=len(A) #值[i]存储具有最大和的递增子序列 #以[i]结尾 范围(n)内的u的值=[] 值[0]。追加(A[0]) #sum[i]存储递增子序列的最大和 #以[i]结尾 总和=[0]*n 总和[0]

我必须使用Python定义一个具有最大和的递增非连续子数组。 例如,如果我有一个数组[5,2,4,3,7],那么我必须输出[2,4,7]。
给定的输出正在增加,在所有可能增加的子阵列中具有最大和。

查看此代码:

def def definished(A):#迭代函数以最大和为原则划分子序列
n=len(A)
#值[i]存储具有最大和的递增子序列
#以[i]结尾
范围(n)内的u的值=[]
值[0]。追加(A[0])
#sum[i]存储递增子序列的最大和
#以[i]结尾
总和=[0]*n
总和[0]=A[0]
对于范围(1,n)中的i:#从列表中的第二个元素开始
对于范围(i)中的j:#对子列表[0..i-1]中的每个元素执行
#查找以结尾的最大和的递增子序列
#A[j],其中A[j]小于当前元素A[i]
如果sum[i]A[j]:
值[i]=值[j]。复制()#更新递增子序列
总和[i]=总和[j]#更新最大总和
值[i].append(A[i])#在递增子序列中包含当前元素
求和[i]+=A[i]#将当前元素与最大和相加
j=0#j将包含值的索引
对于范围(1,n)内的i:
如果sum[i]>sum[j]:
j=i
#打印值
打印(值[j])
A=[5,2,4,3,7,7]
详细说明(A)
#输出:[2,4,7]

上述解决方案的时间复杂度是
O(n^2)
,程序使用的辅助空间是
O(n^2)

Hi,这就是这个输出背后的逻辑?@carlozanco一个具有最大和的非递减子序列,尽管这个问题写得很糟糕。@nice_dev Oh!谢谢大家!@你能告诉我我是否正确理解了你的问题吗?公认的答案在时间和空间上都有复杂性O(n^2),但这个问题实际上是重复的,前面的问题有一个答案是O(n log n)时间和O(n)空间: