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}