python 和為S的兩個數字
阿新 • • 發佈:2018-02-20
enumerate body class div clas spa enum 代碼 循環
輸入一個遞增排序的數組和一個數字S,在數組中查找兩個數,是的他們的和正好是S,如果有多對數字的和等於S,輸出兩個數的乘積最小的。
運用到的知識;
1.判斷是否是統一類型:
1 if not isinstance (array,list): 2 return l
2.將 列表 變成 有索引的序列, 同時列出數據和數據下標,一般用在 for 循環當中。
1 for i,v in enumerate(array): 2 for v1 in array[i:]: 3 if (v + v1 ) == tsum:4 l.append([v,v1])
思路 不難 :
整個代碼:
1 class Solution: 2 def FindNumbersWithSum(self, array, tsum): 3 # write code here 4 l = [] 5 if not isinstance (array,list): 6 return l 7 for i,v in enumerate(array): 8 forv1 in array[i:]: 9 if (v + v1 ) == tsum: 10 l.append([v,v1]) 11 if l: 12 return l[0] 13 else: 14 return l
在網上看到 一種 更簡單的:
https://www.cnblogs.com/yml435/p/4655470.html
是用 前後索引 來 計算的。更快 應該。
這道題與 上個題類似。
python 和為S的兩個數字