import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param info int整型一维数组
* @param target_weight int整型
* @return int整型一维数组
*/
public int[] findWeightRelation (int[] info, int target_weight) {
HashMap<Integer, Integer> hashMap = new HashMap<>();
for (int i = 0; i < info.length; i++) {
hashMap.put(info[i], i);
}
for (int i = 0; i < info.length; i++) {
if (hashMap.containsKey(info[i]) &&
hashMap.containsKey(target_weight - info[i])) {
Integer index = hashMap.get(target_weight - info[i]);
if (index != i) {
return new int [] {i + 1, index + 1};
}
}
}
return new int [] {-1, -1};
}
}
本题知识点分析:
1.哈希表存取
2.数组遍历
本题解题思路分析:
1.先创建hashMap用于存放数组的元素和下标
2.遍历数组,是否存在hashMap.containsKey(info[i]) &&hashMap.containsKey(target_weight - info[i])都有的情况
3.并且要判断是否是它本身,比如{1,2,3} target=6,不能是3+3,因为自身只能加一次
4.只要index!=i,说明不是本身,返回即可,因为题目要求从1开始,i+1,index+1
5.如果找不到符合条件的,就返回{-1,-1}

京公网安备 11010502036488号