我試圖在 A 中找到一對 (x,y),使得 xy = 0 (mod n),其中輸入是正整數 n、m 個非負整數和 m > n 的集合 A。為了運行下面的代碼,我拿了一個 m 和 n 只是為了運行一個例子。
下面是我寫的腳本。
就 n 和 m 而言,運行時間復雜度是多少?--> 會是 O(N) 嗎?主回圈與 A 的長度一樣多,長度為 m。我想問題是要我討論m 和 n,但我不確定關于 n 有什么要說的?
如果 n 是常數,運行時間復雜度是多少?--> 所以,這被問到了,但不是一直不變嗎?我有點困惑,問題是“輸入是一個正整數 n ...”
def find_equal_pair_mod_n(n, A):
assert len(A) > n
X = [-1] * n
print(X)
for i in range(len(A)-1,-1,-1) : #loop backwards
print(i)
a = A[i]
print(a)
print(len(A))
A.pop(i)
r = a % n
if X[r] == -1:
X[r] = a
else:
return(X[r], a)
uj5u.com熱心網友回復:
簡短的回答
- “就 和 而言,運行時復雜度是
n多少m?”。正確答案是O(n)。 - “如果
n是常數,運行時間復雜度是多少?”。正確答案是O(1)。
解釋
- 當你迭代你的回圈時,你只能做迭代,因為除以 時
n 1只有不同的余數。因此,您肯定會在或更少的迭代中找到答案。nnn 1 - 如果
n是恒定的,您仍然需要n 1或更少的迭代來找到答案,因此您需要恒定的時間來解決您的問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/420350.html
標籤:
上一篇:如果使用ajax,表單不顯示錯誤
