簡體   English   中英

獲得數組元素的嚴格遞增序列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM