LeetCode 演算法題

2021-10-01 05:26:56 字數 622 閱讀 2160

給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。

示例:給定 nums = [2, 7, 11, 15], target = 9

因為 nums[0] + nums[1] = 2 + 7 = 9

所以返回 [0, 1]

雜湊查詢的時間複雜度為 o(1),所以可以利用雜湊容器 map 降低時間複雜度。遍歷nums陣列中的元素,查詢hashmap中是否存在等於target-nums[i]的key值,若存在,得到結果;若不存在,將nums[i]作為key,i作為value插入hashmap中。

public

int[

]twosum

(int

nums,

int target);}

result.

put(nums[i]

,i);

}throw

newillegalargumentexception

("no two sum solution");

}

Leetcode演算法題

56.合併區間 給出乙個區間的集合,請合併所有重疊的區間。示例 1 輸入 intervals 1,3 2,6 8,10 15,18 輸出 1,6 8,10 15,18 解釋 區間 1,3 和 2,6 重疊,將它們合併為 1,6 示例 2 輸入 intervals 1,4 4,5 輸出 1,5 解釋 ...

Leetcode演算法題

20 有效的括號 題目描述 給定乙個只包括 的字串 s 判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。示例 示例 1 輸入 s 輸出 true 示例 2 輸入 s 輸出 true 示例 3 輸入 s 輸出 false 示例 4 輸入 s 輸出 fal...

Leetcode 演算法題07

169.majority element 輸入乙個列表,找出其中出現次數超過列表長度一半的數 我的 class solution object def majorityelement self,nums type nums list int rtype int count collections.c...