LeetCode(剑指 Offer)- 56 - II. 数组中数字出现的次数 II

Posted 放羊的牧码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode(剑指 Offer)- 56 - II. 数组中数字出现的次数 II相关的知识,希望对你有一定的参考价值。

题目链接:点击打开链接

题目大意:

解题思路

相关企业

  • 字节跳动

AC 代码

  • Java
class Solution 
    public int singleNumber(int[] nums) 
        int[] counts = new int[32];
        for(int num : nums) 
            for(int i = 0; i < 32; i++) 
                counts[i] += num & 1; // 更新第 i 位 1 的个数之和
                num >>= 1;            // 第 i 位 --> 第 i 位
            
        
        int res = 0, m = 3;
        for(int i = 31; i >= 0; i--) 
            res <<= 1;
            res |= counts[i] % m;     // 恢复第 i 位
        
        return res;
    
  • C++
class Solution 
public:
    int singleNumber(vector<int>& nums) 
        int counts[32] = 0;         // C++ 初始化数组需要写明初始值 0
        for(int num : nums) 
            for(int i = 0; i < 32; i++) 
                counts[i] += num & 1; // 更新第 i 位 1 的个数之和
                num >>= 1;            // 第 i 位 --> 第 i 位
            
        
        int res = 0, m = 3;
        for(int i = 31; i >= 0; i--) 
            res <<= 1;
            res |= counts[i] % m;     // 恢复第 i 位
        
        return res;
    
;

以上是关于LeetCode(剑指 Offer)- 56 - II. 数组中数字出现的次数 II的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode(剑指 Offer)- 56 - I. 数组中数字出现的次数

LeetCode(剑指 Offer)- 56 - I. 数组中数字出现的次数

LeetCode(剑指 Offer)- 56 - II. 数组中数字出现的次数 II

LeetCode(剑指 Offer)- 56 - II. 数组中数字出现的次数 II

leetcode中等剑指 Offer 56 数组中数字出现的次数

leetcode中等剑指 Offer 56 数组中数字出现的次数