[英]obtain a strictly increasing sequence of the elements of array
所以任務是這樣的:給你一個整數數組。 在每次移動中,您都可以將其元素中的一個精確增加一個。 找出從輸入中獲得嚴格遞增序列所需的最少移動次數。
例子:
input_array = [1, 1, 1],輸出應該是array_change(input_array) = 3
這是我的代碼,它工作正常,它正確計算移動,但對於較大的數組,它的運行速度非常慢。 我如何優化我的代碼以執行相同但更快的操作? 還是只有更好更快的方法來做到這一點? 我的代碼:
def array_change(input_array):
l = len(input_array)
k = 0
for i in range(1, l):
while input_array[i - 1] >= input_array[i]:
input_array[i] += 1
k += 1
if input_array[i - 1] == input_array[i]:
input_array[i] += 1
k += 1
return k
好的,我只是找到了正確的方法來做到這一點。
def arrayChange(iA):
c = 0
for i in range(len(iA) - 1):
if iA[i] >= iA[i + 1]:
d = iA[i] - iA[i + 1]
iA[i + 1] += d + 1
c += d + 1
return c
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.