提交编程语言答案时,应该遵循以下结构和格式:
问题描述
清晰地描述所回答的具体问题。
提及问题的背景和相关要求。
解题思路
详细阐述解决问题的思路和方法。
可以使用文字、流程图、伪代码等形式进行说明。
代码实现
将解题思路转化为计算机可执行的代码。
代码应该清晰、易读,并遵循相应的代码风格规范(如Google风格、PEP 8等)。
包含必要的注释,解释代码的功能和实现细节。
其他回答(如适用):
如果问题有多个可能的解决方案,可以列出其他方法,并进行比较。
参考文献和资源引用(如适用):
如果答案中使用了外部库或参考了其他资料,应在答案末尾进行引用。
文件组织(如适用):
如果需要提交多个文件,确保文件命名和文件夹结构清晰、合理。
```markdown
题目:给定一个整数数组,找到两个数使得它们的和为指定目标值。
问题描述
给定一个整数数组 `nums` 和一个目标值 `target`,请你在该数组中找出和为目标值的那两个整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。
解题思路
1. 使用哈希表来存储已经遍历过的元素及其索引。
2. 遍历数组,对于每个元素,计算其与目标值的差值。
3. 检查差值是否已经在哈希表中,如果在,则返回当前元素索引和差值对应的索引。
4. 如果不在哈希表中,将当前元素及其索引存入哈希表。
代码实现
```
def two_sum(nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
创建一个哈希表来存储元素及其索引
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
示例
nums = [2, 7, 11, 15]
target = 9
print(two_sum(nums, target)) 输出: [0, 1]