题解 | #寻找两头牛的情报关联#
寻找两头牛的情报关联
https://www.nowcoder.com/practice/5cb34321b6dd41bcbea3db454c2f6e9f?tpId=354&tqId=10588481&ru=/exam/oj&qru=/ta/interview-202-top/question-ranking&sourceUrl=%2Fexam%2Foj
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}
本题使用编程语言: Java
高频面试算法题解 文章被收录于专栏
高频面试算法题解,每天一小步,人生一大步,跟着一起刷起来!