题目描述: 给定一个整数数组 nums 和一个目标值 target,请在数组中找出和为目标值的两个整数。 示例: 输入:nums = [2, 7, 11, 15], target = 9 输出:[, 1] 解释:因为 nums[] + nums[1] = 2 + 7 = 9,所以返回 [, 1]。 解题思路: 使用哈希表,遍历数组,将数组中的元素作为 key,下标作为 value 存入哈希表中。在遍历的过程中,判断 target - nums[i] 是否在哈希表中,如果在,则返回对应的下标。 Python 代码实现: class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: hashmap = {} for i, num in enumerate(nums): if target - num in hashmap: return [hashmap[target - num], i] hashmap[num] = i return []
时间: 2024-04-17 22:25:58 浏览: 788
这是一个经典的两数之和问题,给定一个整数数组和一个目标值,要求找出数组中和为目标值的两个整数。这个问题可以使用哈希表来解决,遍历数组,将数组中的元素作为键,下标作为值存入哈希表中。在遍历的过程中,判断目标值减去当前元素是否在哈希表中,如果在,则返回对应的下标。
以下是使用Python实现的代码:
```python
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
hashmap = {}
for i, num in enumerate(nums):
if target - num in hashmap:
return [hashmap[target - num], i]
hashmap[num] = i
return []
```
你可以通过创建 `Solution` 类的实例,并调用 `twoSum` 方法来解决这个问题。传入的参数包括整数数组 `nums` 和目标值 `target`。如果找到了符合要求的两个数,则返回它们的下标;否则返回一个空列表。
相关问题
题目描述: 给定一个整数数组 nums 和一个目标值 target,请在数组中找出和为目标值的两个整数。 示例: 输入:nums = [2, 7, 11, 15], target = 9 输出:[, 1] 用c++解决
好的,这是一个典型的求两数之和的问题,可以使用哈希表来解决。以下是C++的代码实现:
```c++
#include <iostream>
#include <vector>
#include <unordered_map>
using namespace std;
vector<int> twoSum(vector<int>& nums, int target) {
unordered_map<int, int> hash;
for (int i = 0; i < nums.size(); i++) {
int complement = target - nums[i];
if (hash.count(complement)) {
return {hash[complement], i};
}
hash[nums[i]] = i;
}
return {};
}
int main() {
vector<int> nums = {2, 7, 11, 15};
int target = 9;
vector<int> res = twoSum(nums, target);
for (int i = 0; i < res.size(); i++) {
cout << res[i] << " ";
}
return 0;
}
```
输出结果为:
```
0 1
```
这表示在数组中下标为0和1的两个数2和7的和为9。
题目描述: 给定一个整数数组 nums 和一个目标值 target,找出数组中和为目标值的两个数,并返回它们的下标。假设每个输入只对应一种答案,同样的元素不能使用两次。
这是一个经典的计算机科学问题,通常称为“两数之和”(Two Sum)。在Python中,你可以使用哈希表(字典)来解决这个问题,其基本思路是遍历数组,对于每个元素nums[i],我们查找target - nums[i]是否已经在哈希表中。如果找到了,我们就找到了一对和为目标值的数,返回这两个元素的索引i和哈希表中找到的元素的索引。如果没有找到,则将当前元素及其索引添加到哈希表中继续搜索。
以下是简单的Python代码实现:
```python
def twoSum(nums, target):
hash_map = {}
for i, num in enumerate(nums):
complement = target - num
if complement in hash_map:
return [hash_map[complement], i]
hash_map[num] = i
return None # 如果找不到符合条件的数对
# 示例:
nums = [2, 7, 11, 15]
target = 9
print(twoSum(nums, target)) # 输出: [0, 1]
```
阅读全文