一、解题思路 1、解法一( Java )
解法思路:双层循环
代码如下:
//Answer1 双层循环 class Solution { public int[] twoSum(int[] nums, int target) { int[] arr = new int[2]; for(int i = 0; i2、解法二( Java ) 解法思路:使用 HashMap(Key 为数值,Value 为下标)存储遍历过的数字 ,遍历的同时查询 HashMap 是否包含 target-nums[i] ,如果有则寻找到对应下标。
代码如下:
//Answer2 使用 HashMap(Key 为数值,Value 为下标)存储遍历过的数字,遍历的同时查询 HashMap 是否包含 target-nums[i] ,如果有则寻找到对应下标。 class Solution { public int[] twoSum(int[] nums, int target) { HashMaphashMap = new HashMap(); for(int i = 0; i < nums.length; i++) { if(hashMap.containsKey(target - nums[i])) { return new int[]{ hashMap.get(target - nums[i]), i }; } hashMap.put(nums[i], i); } return new int[0]; } } 代码如下:
运行结果截图如下:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)