数据流中第一个唯一的数字——lint685

数据流中第一个唯一的数字

描述

给一个连续的数据流,写一个函数返回终止数字到达时的第一个唯一数字(包括终止数字),如果找不到这个终止数字, 返回 -1

示例1

输入: 
[1, 2, 2, 1, 3, 4, 4, 5, 6]
5
输出: 3

示例2

输入:
[1, 2, 2, 1, 3, 4, 4, 5, 6]
7
输出: -1

题解

class Solution {
    public int firstUniqueNumber(int[] nums, int number) {
        if(nums == null || nums.length == 0) return -1;
        HashMap<Integer, Integer> map = new HashMap<>();

        for (int num : nums) {
            map.put(num, map.getOrDefault(num, 0) + 1);
            if(num == number) break;
        }

        if(!map.containsKey(number)) return -1;

        for (int num : nums) {
            if(map.get(num) == 1) {
                return num;
            }
            if(num == number) return -1;
        }

        return -1;
    }
}
posted @ 2022-05-24 14:05  言思宁  阅读(19)  评论(0编辑  收藏  举报