题解 | #寻找两头牛的情报关联#

寻找两头牛的情报关联

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

高频面试算法题解 文章被收录于专栏

高频面试算法题解,每天一小步,人生一大步,跟着一起刷起来!

全部评论

相关推荐

点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务