请用 Python 编写一个函数,输入一个整数数组,返回所有和为目标值的两个数的索引(假设每种输入只有一个答案)。
你可以使用一个哈希表来解决这个问题,以便在一次遍历中找到两个数的索引。以下是一个示例函数 `two_sum`,它接受一个整数数组 `nums` 和一个整数目标值 `target`,并返回两个数的索引。 ```python def two_sum(nums, target): # 创建一个空的哈希表来存储数值和对应的索引 num_to_index = {} # 遍历数组 for index, num in enumerate(nums): # 计算当前数值所需的补数 complement = target - num # 检查补数是否在哈希表中 if complement in num_to_index: # 如果补数存在,返回补数的索引和当前数值的索引 return [num_to_index[complement], index] # 如果补数不存在,将当前数值和索引添加到哈希表中 num_to_index[num] = index # 如果没有找到任何结果,返回一个空列表(根据题意应不会发生) return [] # 测试函数 nums = [2, 7, 11, 15] target = 9 result = two_sum(nums, target) print(result) # 输出: [0, 1] ``` 在这个例子中,函数返回 `[0, 1]`,因为在数组 `nums` 中,`nums[0] + nums[1]` 等于目标值 `9`。注意,哈希表的查找和插入操作的时间复杂度为 O(1),因此整个算法的时间复杂度为 O(n),其中 n 是数组的长度。
你可以使用一个哈希表(字典)来解决这个问题,这样可以在一次遍历中找到两个数的索引。以下是一个示例函数 `two_sum`,它接受一个整数数组 `nums` 和一个目标值 `target`,并返回一个包含两个索引的列表: ```python def two_sum(nums, target): # 创建一个字典来存储数值和对应的索引 num_to_index = {} # 遍历数组 for index, num in enumerate(nums): # 计算当前数值所需的补数 complement = target - num # 检查补数是否在字典中 if complement in num_to_index: # 如果在字典中,返回补数的索引和当前数值的索引 return [num_to_index[complement], index] # 如果不在字典中,将当前数值和索引存入字典 num_to_index[num] = index # 如果没有找到符合条件的两个数,返回空列表(根据题意这种情况不会发生) return [] # 示例用法 nums = [2, 7, 11, 15] target = 9 result = two_sum(nums, target) print(result) # 输出: [0, 1] ``` 在这个函数中,我们使用一个字典 `num_to_index` 来存储数组中每个数值及其对应的索引。对于数组中的每个数值 `num`,我们计算出它的补数 `complement`,即 `target - num`。如果这个补数已经在字典中,说明我们找到了两个数,它们的和等于目标值,于是返回它们的索引。如果补数不在字典中,我们将当前数值和索引存入字典,以便后续查找。
你可以使用一个字典来存储已经访问过的数字及其索引,以便在遍历数组时快速查找是否存在一个数与当前数的和为目标值。以下是一个示例实现: ```python def two_sum(nums, target): # 创建一个字典来存储数值和对应的索引 num_to_index = {} # 遍历数组 for index, num in enumerate(nums): # 计算当前数需要的补数 complement = target - num # 检查补数是否在字典中 if complement in num_to_index: # 如果存在,返回补数的索引和当前数的索引 return [num_to_index[complement], index] # 如果不存在,将当前数和索引存入字典 num_to_index[num] = index # 如果没有找到符合条件的两个数,返回空列表(根据题意这种情况不会发生) return [] # 示例用法 nums = [2, 7, 11, 15] target = 9 result = two_sum(nums, target) print(result) # 输出: [0, 1] ``` 在这个函数中,我们使用了一个字典 `num_to_index` 来存储数组中每个数字及其对应的索引。对于数组中的每个数字 `num`,我们计算出它的补数 `complement`,即 `target - num`。然后检查这个补数是否已经在字典中。如果在,说明找到了两个数,它们的和为 `target`,于是返回它们的索引。如果不在,我们将当前数字和它的索引存入字典中,继续遍历下一个数字。由于题目保证每种输入只有一个答案,所以不需要处理找不到的情况。
| 模型名称 | 模型提供商 | 响应总时长(s) | 生成 token 数 | 首 token 延迟(s) | 生成速率(tokens/s) |
|---|---|---|---|---|---|
|
7.15
|
361
|
0.51
|
50.52
|
||
|
5.27
响应最快
|
393
内容最多
|
1.24
|
74.6
速度最快
|
||
|
12.35
|
382
|
0.32
延迟最小
|
30.92
|
请用 Python 编写一个函数,输入一个字符串数组和一个目标字符串,返回所有包含目标字符串的子数组的索引(假设每种输入只有一个答案)。
请用 Python 编写一个函数,输入一个整数数组和一个目标和,返回所有和为目标值的三个数的索引(假设每种输入只有一个答案)。
请用 Python 编写一个函数,输入一个整数数组和一个目标值,返回数组中所有和为该目标值的两个数的索引(假设每种输入有多个答案)。
请用 Python 编写一个函数,输入一个整数数组和一个目标和,返回所有和为该目标和的三个数的索引(假设每种输入只有一个答案)。
请用 Python 编写一个函数,输入一个整数数组和一个目标值,返回数组中所有和为目标值的两个数的索引(假设每种输入有多个答案)。
请用 Python 编写一个函数,输入一个整数数组和一个目标值,返回所有和为该目标值的三个数的索引(假设每种输入只有一个答案)。
请用 Python 编写一个函数,输入一个字符串数组,返回所有和为指定字符串的两个字符串的索引(假设每种输入只有一个答案)。
请用 Python 编写一个函数,输入一个整数数组和一个目标和,返回所有和等于目标值的三个数的索引(假设每种输入只有一个答案)。
请用 Python 编写一个函数,输入一个整数数组和一个目标乘积值,返回所有乘积为目标值的两个数的索引(假设每种输入只有一个答案)。
请用 Python 编写一个函数,输入一个字符串数组和一个目标字符串,返回所有包含目标字符串的子数组的索引(假设每种输入只有一个答案)。
幂简集成是创新的API平台,一站搜索、试用、集成国内外API。
Copyright © 2024 All Rights Reserved 北京蜜堂有信科技有限公司
公司地址: 北京市朝阳区光华路和乔大厦C座1508
意见反馈:010-53324933,mtyy@miitang.com