1. 程式人生 > 資料庫 >electron專案用Sequelize連線資料庫sqlite3(二)

electron專案用Sequelize連線資料庫sqlite3(二)

技術標籤:基礎學習leetcode演算法

leetcode題目:

  1. 兩數之和
    給定一個整數陣列 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]))