题目描述:
有一个包含n个元素的整数数组nums和一个整数target,你需要在数组中找到两个元素,它们的和等于target,并返回它们的下标。
输入格式:
第一行输入一个整数n,表示数组元素个数。
第二行输入n个整数,表示数组元素。
第三行输入一个整数target,表示需要找到的和。
输出格式:
输出两个整数,表示两个元素的下标,如果找不到则输出 "No Solution"。
要求:
请实现时间复杂度为O(n)的算法。
示例:
输入:
5
2 7 11 15 8
9
输出:
0 1
思路分析:
在题目只有一个需要求解 target 值得情况下,我们可以使用哈希表来进行求解。哈希表可以通过空间换时间,将查找时间复杂度从 O(n) 降到 O(1)。
具体做法是对于每个元素,我们判断哈希表中是否存在 targetnums[i]。如果存在,则说明找到了需要的元素,如果不存在,则将当前元素加入哈希表中。这样每次寻找哈希表的操作的时间复杂度都为 O(1)。
代码实现:
文章已关闭评论!
2024-11-26 12:45:30
2024-11-26 12:44:15
2024-11-26 12:43:00
2024-11-26 12:41:53
2024-11-26 12:40:23
2024-11-26 12:38:59
2024-11-26 12:37:31
2024-11-26 12:36:13