生活随笔
收集整理的這篇文章主要介紹了
LeetCode 1429. 第一个唯一数字(map+queue)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
1. 題目
給定一系列整數,插入一個隊列中,找出隊列中第一個唯一整數。
實現 FirstUnique 類:
- FirstUnique(int[] nums) 用數組里的數字初始化隊列。
- int showFirstUnique() 返回隊列中的 第一個唯一 整數的值。如果沒有唯一整數,返回 -1。(譯者注:此方法不移除隊列中的任何元素)
- void add(int value) 將 value 插入隊列中。
示例
1:
輸入:
["FirstUnique","showFirstUnique","add","showFirstUnique","add","showFirstUnique","add","showFirstUnique"]
[[[2,3,5]],[],[5],[],[2],[],[3],[]]
輸出:
[null
,2,null
,2,null
,3,null
,-1]
解釋:
FirstUnique firstUnique
= new FirstUnique([2,3,5]);
firstUnique
.showFirstUnique();
firstUnique
.add(5);
firstUnique
.showFirstUnique();
firstUnique
.add(2);
firstUnique
.showFirstUnique();
firstUnique
.add(3);
firstUnique
.showFirstUnique(); 示例
2:
輸入:
["FirstUnique","showFirstUnique","add","add","add","add","add","showFirstUnique"]
[[[7,7,7,7,7,7]],[],[7],[3],[3],[7],[17],[]]
輸出:
[null
,-1,null
,null
,null
,null
,null
,17]
解釋:
FirstUnique firstUnique
= new FirstUnique([7,7,7,7,7,7]);
firstUnique
.showFirstUnique();
firstUnique
.add(7);
firstUnique
.add(3);
firstUnique
.add(3);
firstUnique
.add(7);
firstUnique
.add(17);
firstUnique
.showFirstUnique(); 示例
3:
輸入:
["FirstUnique","showFirstUnique","add","showFirstUnique"]
[[[809]],[],[809],[]]
輸出:
[null
,809,null
,-1]
解釋:
FirstUnique firstUnique
= new FirstUnique([809]);
firstUnique
.showFirstUnique();
firstUnique
.add(809);
firstUnique
.showFirstUnique(); 提示:
1 <= nums
.length
<= 10^5
1 <= nums
[i
] <= 10^8
1 <= value
<= 10^8
最多調用
5000 次 showFirstUnique 和 add 。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/first-unique-number
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
class FirstUnique {unordered_map
<int,int> map
;queue
<int> q
;
public:FirstUnique(vector
<int>& nums
) {for(int n
: nums
){q
.push(n
);map
[n
]++;}}int showFirstUnique() {while(!q
.empty() && map
[q
.front()] >1)q
.pop();if(q
.empty()) return -1;return q
.front();}void add(int value
) {q
.push(value
);map
[value
]++;}
};
672 ms 121.5 MB
我的CSDN博客地址 https://michael.blog.csdn.net/
長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!
總結
以上是生活随笔為你收集整理的LeetCode 1429. 第一个唯一数字(map+queue)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。