原题入口
给一个连续的数据流,写一个函数返回终止数字到达时的第一个唯一数字(包括终止数字),如果找不到这个终止数字, 返回 -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
样例3
输入:
[1, 2, 2, 1, 3, 4]
3
输出: 3
import java.util.*;
public class Solution {
/**
* @param nums: a continuous stream of numbers
* @param number: a number
* @return: returns the first unique number
*/
public int firstUniqueNumber(int[] nums, int number) {
// Write your code here
if (nums.length == 0) return -1;
Map<Integer, Integer> map = new HashMap();
boolean state = false;
for (int i = 0; i < nums.length; i++) {
if (map.containsKey(nums[i])) {
map.put(nums[i], map.get(nums[i]) + 1);
} else {
map.put(nums[i], 1);
}
if (nums[i] == number) {
state = true;
break;
}
}
if (!state) return -1;
for (int i = 0; i < nums.length; i++) {
if (map.get(nums[i]) == 1) return nums[i];
}
return -1;
}
}