0
私はこのアルゴリズムの時間の複雑さをどのように減らすことができるのだろうと思っていました。 k個の整数に合計する要素を持つmaxサブアレイの長さを計算します。隣接するサブアレイの時間の複雑さを減らす
=整数のアレイ
K = maxの整数
例:A = [1,2,3]、K = 3個の
可能サブアレイ= [1]、[1最大部分配列の、2]
長= 2
sys.setrecursionlimit(20000)
def maxLength(a, k):
#a = [1,2,3]
#k = 4
current_highest = 0
no_bigger = len(a)-1
for i in xrange(len(a)): #0 in [0,1,2]
current_sum = a[i]
sub_total = 1
for j in xrange(len(a)):
if current_sum <= k and ((i+sub_total)<=no_bigger) and (k>=(current_sum + a[i+sub_total])):
current_sum += a[i+sub_total]
sub_total += 1
else:
break
if sub_total > current_highest:
current_highest = sub_total
return current_highest
質問製剤は悪いです、矛盾を含んで、例は明らかではありません。 – MBo
最大サブアレイとはどういう意味ですか?最大の長さか何? –
ヒント:数字が負ではないと仮定して、パートナーの部分和を検索します。 –