请写出leetcode第1题的python解题代码
时间: 2023-08-31 22:23:18 浏览: 168
### 回答1:
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
for i in range(len(nums)):
for j in range(i+1, len(nums)):
if nums[i] + nums[j] == target:
return [i, j]
### 回答2:
leetcode 第1题是"两数之和",题目要求在给定的整数数组中找到两个数,使它们的和等于一个目标值,并返回这两个数的索引。下面是使用哈希表解决这个问题的Python代码:
```python
def twoSum(nums, target):
# 创建一个空的哈希表
hashmap = {}
# 遍历整个数组
for i, num in enumerate(nums):
# 计算当前数字与目标值的差值
complement = target - num
# 如果差值存在于哈希表中,则返回差值的索引和当前数字的索引
if complement in hashmap:
return [hashmap[complement], i]
# 将当前数字添加到哈希表中,索引作为键,数字作为值
hashmap[num] = i
# 如果未找到符合条件的数字,则返回空列表
return []
```
这个算法的基本思想是,在遍历整个数组的过程中,先计算当前数字与目标值的差值,然后将差值与当前数字的索引存储在哈希表中。接下来,在遍历数组的过程中,如果差值存在于哈希表中,则说明找到了两个数的和等于目标值,直接返回这两个数的索引。如果遍历完成后仍未找到符合条件的数对,则返回空列表。这个算法的时间复杂度为 O(n),其中 n 为数组的长度。
### 回答3:
题目描述:两数之和
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回它们的数组下标。
示例:
输入:nums = [2,7,11,15], target = 9
输出:[0,1]
解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
思路:使用字典存储数组中的数字及其对应的下标,然后遍历数组找到与目标值的差值,如果差值也在字典中,说明找到了答案。
具体实现如下:
```python
def twoSum(nums, target):
# 创建一个字典存储数组中的数字及其对应的下标
num_dict = {}
for i in range(len(nums)):
# 计算与目标值的差值
complement = target - nums[i]
# 如果差值也在字典中,说明找到了答案
if complement in num_dict:
return [num_dict[complement], i]
# 将数字及其对应的下标存入字典中
num_dict[nums[i]] = i
return []
nums = [2, 7, 11, 15]
target = 9
result = twoSum(nums, target)
print(result) # 输出 [0, 1]
```
以上就是 LeetCode 第1题的 Python 解题代码。
阅读全文