Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target.
You may assume that each input would have exactly one solution, and you may not use the same element twice.
You can return the answer in any order.
Example 1:
Input: nums = [2,7,11,15], target = 9
Output: [0,1]
Output: Because nums[0] + nums[1] == 9, we return [0, 1].
Example 2:
Input: nums = [3,2,4], target = 6
Output: [1,2]
Example 3:
Input: nums = [3,3], target = 6
Output: [0,1]
Constraints:
2 <= nums.length <= 104
-109 <= nums[i] <= 109
-109 <= target <= 109
Only one valid answer exists.
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/two-sum
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
class Solution {
public int[] twoSum(int[] nums, int target) {
Map<Integer, Integer> map = new HashMap<>();
int[] ans = new int[2];
for (int i = 0; i < nums.length; i++) {
// 包含了nums中存在两个相同数字的情况
if (map.containsKey(target - nums[i])) {
ans[0] = i;
ans[1] = map.get(target - nums[i]);
return ans;
}
map.put(nums[i], i);
}
return null;
}
}
两数之和:寻找数组中相加等于目标值的两个数
这是一个编程问题,要求从给定整数数组中找到两个数,使得它们的和等于指定的目标值,并返回这两个数的索引。题目保证每个输入有且只有一个解,且不能使用相同的元素两次。提供的解决方案是通过哈希映射来存储已遍历过的数值及其索引,从而高效地找到匹配项。
829

被折叠的 条评论
为什么被折叠?



