electron專案用Sequelize連線資料庫sqlite3(二)
阿新 • • 發佈:2021-01-18
leetcode題目:
- 兩數之和
給定一個整數陣列 nums 和一個整數目標值 target,請你在該陣列中找出 和為目標值 的那 兩個 整數,並返回它們的陣列下標。
你可以假設每種輸入只會對應一個答案。但是,陣列中同一個元素不能使用兩遍。
你可以按任意順序返回答案
示例 1:
輸入:nums = [2,7,11,15], target = 9
輸出:[0,1]
解釋:因為 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
示例 2:
輸入:nums = [3,2,4], target = 6
輸出:[1,2]
示例 3:
輸入:nums = [3,3], target = 6
輸出:[0,1]
提示:
2 <= nums.length <= 103
-109 <= nums[i] <= 109
-109 <= target <= 109
只會存在一個有效答案
我看網上很多人都是直接用雙重迴圈進行遍歷,我討巧直接用itertools的排列函數了。速度很快,記憶體消耗很大。
上程式碼
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
import itertools
for i in itertools.combinations(nums,2):
if sum(i)==target:
if i[0]==i[1]:#處理兩個值相等,只能返回一個下標的情況
temp=[x for x, v in enumerate(nums) if v == i[0]]
return temp[:2]
return (nums.index(i[0]),nums.index(i[1]))