数据流中第一个唯一的数字——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;
}
}