1. 程式人生 > >python 和為S的兩個數字

python 和為S的兩個數字

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             for
v1 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的兩個數字