思路何在,請大神們詳分
uj5u.com熱心網友回復:
對序列找出所有2個陣列合。遍歷組合,找出相差最小項。
uj5u.com熱心網友回復:
要有條件的,第一串列內重復元素怎么處理,如果多組相差一樣的怎么處理
uj5u.com熱心網友回復:
是我想的太簡單了嗎,遍歷這個陣列,一個max一個min 同時記錄 大于就放進max小于就放到min,還有什么復雜度的要求的嗎uj5u.com熱心網友回復:
人家是在找大小嗎?看清楚題目!
uj5u.com熱心網友回復:
假如你的陣列是這樣的該怎么弄,[1,2,3,4,1,2,1]
這樣差最小的就是1跟1,但是你這里面有三個1,就有三組差為0的元素對,這樣的情況是只輸出一對還是所有的都輸出
[1,2,3,4]
還有這種連續的也有很多對是一樣的差值,是全部列出來還是只輸出一個
uj5u.com熱心網友回復:
哈哈 吃完飯腦子有點不清楚uj5u.com熱心網友回復:
lx = list(range(1,5))l = []
p = 0
for x in lx:
p +=1
for i in lx[p:]:
l.append((abs(x-i),x,i))
l.sort(key=lambda x:x[0])
print(l)
uj5u.com熱心網友回復:
看了以上帖子, 有這種感覺, 產品一句話, 開發忙半天。一個負責任的開發會考慮很多種可能情況。 提需求的只考慮何時上火星。
uj5u.com熱心網友回復:
我覺得直接排序一次,然后依次計算差值取差值最小的兩個數就可以了吧
nums = [1,7,4,6,3]
nums.sort()
min_diff = nums[-1] - nums[0]
a = 0
b = 0
for i in range(1,len(nums)):
if nums[i] - nums[i-1] < min_diff:
a = nums[i-1]
b = nums[i]
min_diff = nums[i] - nums[i-1]
print(a,b)
uj5u.com熱心網友回復:
那么這個串列你怎么處理
[1,2,3,4]
uj5u.com熱心網友回復:
回傳 1,2 也沒錯吧 (是相差最小的啊)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/144901.html
