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

Posted 放羊的牧码

tags:

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

题目链接:点击打开链接

题目大意:

解题思路

相关企业

  • Facebook

AC 代码

  • Java
class Solution 
    public int[] singleNumbers(int[] nums) 
        int x = 0, y = 0, n = 0, m = 1;
        for(int num : nums)               // 1. 遍历异或
            n ^= num;
        while((n & m) == 0)               // 2. 循环左移,计算 m
            m <<= 1;
        for(int num: nums)               // 3. 遍历 nums 分组
            if((num & m) != 0) x ^= num;  // 4. 当 num & m != 0
            else y ^= num;                // 4. 当 num & m == 0
        
        return new int[] x, y;          // 5. 返回出现一次的数字
    
  • C++
class Solution 
public:
    vector<int> singleNumbers(vector<int>& nums) 
        int x = 0, y = 0, n = 0, m = 1;
        for(int num : nums)         // 1. 遍历异或
            n ^= num;
        while((n & m) == 0)         // 2. 循环左移,计算 m
            m <<= 1;
        for(int num : nums)        // 3. 遍历 nums 分组
            if(num & m) x ^= num;   // 4. 当 num & m != 0
            else y ^= num;          // 4. 当 num & m == 0
        
        return vector<int> x, y;  // 5. 返回出现一次的数字
    
;

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

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

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

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

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

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

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