目录
- 题目
- 1-思路
- 2- 实现
- ⭐1. 两数之和——题解思路
- 3- ACM实现
题目
- 原题连接:1. 两数之和
1-思路
哈希表
- 利用哈希表存储 key 数组元素值 ——> value 数组下标
- 遍历数组
2- 实现
⭐1. 两数之和——题解思路
class Solution {public int[] twoSum(int[] nums, int target) {int[] res = new int[2];// 哈希表Map<Integer,Integer> map = new HashMap<>();// 存 key 值 ——> value 下标// 遍历数组for(int i = 0 ; i < nums.length ;i++){if(map.containsKey(target-nums[i])){res[0] = i;res[1] = map.get(target-nums[i]);}map.put(nums[i],i);}return res;}
}
3- ACM实现
public class twoSum {public static int[] twoSum(int[] nums, int target) {int[] res = new int[2];// 哈希表Map<Integer,Integer> map = new HashMap<>();// 存 key 值 ——> value 下标// 遍历数组for(int i = 0 ; i < nums.length ;i++){if(map.containsKey(target-nums[i])){res[0] = i;res[1] = map.get(target-nums[i]);}map.put(nums[i],i);}return res;}public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("输入数组长度");int n = sc.nextInt();int[] nums = new int[n];for(int i = 0 ; i < n;i++){nums[i] = sc.nextInt();}System.out.println("输入目标和");int target = sc.nextInt();int[] forRes = twoSum(nums,target);for(int i : forRes){System.out.print(i+" ");}}
}