给定一个数组和一个整数目标值,请在该数组中找出和为目标值的两个整数的下标值
时间: 2024-12-08 10:24:20 浏览: 18
一维数组形式:-VB程序设计——数组
这个问题描述的是著名的“两数之和”(Two Sum)问题,通常在编程面试中作为一道基础题来考察算法设计能力。给定一个整数数组nums和一个目标值target,你需要找到数组中是否存在两个元素,它们的和等于目标值,并返回这两个元素的下标。这个任务可以使用哈希表(Hash Map)或者双指针的方式来解决:
- 使用哈希表法:遍历一次数组,对于每个元素,检查哈希表(键为当前元素值,值为元素的索引)中是否存在目标值减去该元素的差。如果存在,说明找到了一对符合条件的下标,直接返回结果。
- 双指针法:定义两个指针i和j,从数组的开始和结束位置开始移动。如果nums[i] + nums[j] > target,则将j向左移动一位;如果nums[i] + nums[j] < target,则将i向右移动一步。当两者相等时,找到了符合条件的一对,记录下index i 和 j。
以下是简单的Python代码示例:
```python
def twoSum(nums, target):
if not nums or len(nums) == 0:
return []
# 创建一个字典存储元素及其对应的索引
num_dict = {}
for i, num in enumerate(nums):
complement = target - num
if complement in num_dict:
return [num_dict[complement], i]
num_dict[num] = i
# 如果找不到满足条件的元素,返回空列表
return []
# 示例
nums = [2, 7, 11, 15]
target = 9
print(twoSum(nums, target)) # 输出: [0, 1]
```
阅读全文