LeetCode 1——兩數之和
阿新 • • 發佈:2018-12-26
1. 題目
2. 解答
- C++
遍歷陣列,將陣列中的元素和索引分別作為 unordered_map 的鍵和值,如果目標值和當前元素的差已經存於在map 的鍵中,即找到結果。
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
unordered_map<int, int> tabel;
vector<int> index;
int n = nums.size();
for (int i = 0; i < n; i++)
{
int val = target - nums[i];
if (tabel.count(val) == 1)
{
index.push_back(tabel[val]);
index.push_back(i);
return index;
}
else
{
tabel[nums[i]] = i;
}
}
}
};
- Python
遍歷陣列,將陣列中的元素和索引分別作為字典的鍵和值,如果目標值和當前元素的差已經存於在字典的鍵中,即找到結果。
class Solution:
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
hash_table = {}
for index, value in enumerate(nums):
num = target - value
if num in hash_table:
return [hash_table[num], index]
hash_table[value] = index
獲取更多精彩,請關注「seniusen」!