LeetCode 1——两数之和

51次阅读

共计 671 个字符,预计需要花费 2 分钟才能阅读完成。

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」!

正文完
 0