>两数之和<
>twoSum<

一、解题思路
1、解法一( Java )
解法思路:双层循环
代码如下:
/**
* @author listen1024
* @date 2021-12-29
* 1. 两数之和 twoSum
*/
//Answer1 双层循环
class Solution {
public int[] twoSum(int[] nums, int target) {
int[] arr = new int[2];
for(int i = 0; i<nums.length-1; i++){
for(int j = i + 1; j < nums.length; j++){
if(nums[i]+nums[j]==target){
arr[0] = i;
arr[1] = j;
break;
}
}
}
return arr;
}
}
2、解法二( Java )
解法思路:使用 HashMap(Key 为数值,Value 为下标)存储遍历过的数字 ,遍历的同时查询 HashMap 是否包含 target-nums[i] ,如果有则寻找到对应下标。
代码如下:
/**
* @author listen1024
* @date 2021-12-29
* 1. 两数之和 twoSum
*/
//Answer2 使用 HashMap(Key 为数值,Value 为下标)存储遍历过的数字,遍历的同时查询 HashMap 是否包含 target-nums[i] ,如果有则寻找到对应下标。
class Solution {
public int[] twoSum(int[] nums, int target) {
HashMap<Integer, Integer> hashMap = 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];
}
}
代码如下:
运行结果截图如下:

839

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



