leetcode #1 兩數之和

郭子不想改bug發表於2020-11-14

題目描述:

給定一個整數陣列 nums 和一個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。

你可以假設每種輸入只會對應一個答案。但是,陣列中同一個元素不能使用兩遍。

心態複雜
心情複雜

這題是我夢的終結吧!?嚶嚶嚶
sssad
1、 暴力解 (超時了反正,我就不放了太羞恥)
2、用dict,注意!!一定要注意邊界條件,比如說輸入【3,3】,target = 6,那麼輸出一定是【0,1】(即下標不同即可),所以判斷條件是 i != hashmap[j]: 而不是判斷nums[i]、nums[j]是否一致

class Solution:
    def twoSum(self,nums,target):
        i = 0
        hashmap = {}
        for x in nums:
            hashmap[x] = i
            i += 1
        for i in range(len(nums)):
            j = target - nums[i]
            if j in hashmap.keys() and i != hashmap[j]:
                return (i,hashmap[j])
                break

因為有重複值,所以不可以用先排序再二分的方法哦~

相關文章