Leetcode 137. 只出现一次的数字 II 解题思路及C++实现
生活随笔
收集整理的這篇文章主要介紹了
Leetcode 137. 只出现一次的数字 II 解题思路及C++实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
解題思路:
分別統計32位上1的個數tmp,然后對tmp進行對3求余,就能將出現三次的數去掉。最后通過 tmp<<i 將這一位的結果加到res上。
?
class Solution { public:int singleNumber(vector<int>& nums) {int res = 0;for(int i = 0; i < 32; i++){int tmp = 0;for(int j = 0; j < nums.size(); j++)tmp += nums[j] >> i & 1;tmp = tmp % 3;res += tmp << i;}return res;} };?
這道題更好的方法是狀態機的方法,詳細請看博客:https://blog.csdn.net/koala_tree/article/details/80228525
總結
以上是生活随笔為你收集整理的Leetcode 137. 只出现一次的数字 II 解题思路及C++实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Leetcode 268. 缺失数字 解
- 下一篇: Leetcode 187. 重复的DNA