1. 程式人生 > >【LeetCode】TwoSum解題報告

【LeetCode】TwoSum解題報告

這裡寫圖片描述
題意:給出一個數組nums和一個數target,找出陣列中兩個數字的和等於target 的元素下標。
原始碼:

class solution:
    def twoSum(nums, target):
        dic ={}
        for i,n in enumerate(num):
            m =target -n
            if m in dic:
                return [dic[m],i]
            else:
                dic[n]= i

這道題很簡單,但是要注意時間複雜度,用暴力的方法for迴圈顯然會超時,這裡有python中的字典進行實現,字典可以通過鍵確定值,將資料的元素存為鍵下標存為值,enumerate方法將資料的資料和下標一條條的放到字典中,每次放入時檢視字典裡有沒有與現加入的元素之和為target的元素,如果有則返回下標,如果沒有則繼續將新的元素新增到字典中。返回的ij中dic[m]放在前是以為元素是一條條新增進去的,要找滿足條件的另一個值肯定要在字典裡往前找,找到元素的下標也一定小與當前加入元素的下標