使用一个Map维护数字出现的次数,使用一个链表维护只出现一次的数,使用一个变量记录是否找到过终止数字。
AC代码:
public class Solution { /*
* @param : a continuous stream of numbers
* @param : a number
* @return: returns the first unique number
*/
public int firstUniqueNumber(int[] nums, int number) { Map<Integer, Integer> count = new HashMap<>();
List<Integer> once = new LinkedList<>(); boolean isFindStopNumber = false; for(int i : nums){ Integer c = count.get(i);
if(c==null){
count.put(i, 1);
once.add(i);
}else{
count.put(i, c+1);
once.remove(Integer.valueOf(i));
} if(i==number){
isFindStopNumber = true;
break;
} } if(!isFindStopNumber || once.isEmpty()) return -1;
else return once.get(0);
} };