`

Single Number II

阅读更多
Given an array of integers, every element appears three times except for one. Find that single one.

Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?

给定一个数组,每个元素都出现了三次,只有一个元素出现一次,要求时间复杂度为O(n),空间复杂度为O(1),找到这个元素,我们采取位运算来解决。每个整型的数都有32位,我们记录数组中所有元素每位上的和,然后与3进行模运算,这样计算完32位上的值,最后的结果就是出现一次的元素。因为出现三次的元素与三取模后肯定为0,只保留了出现一次的元素。代码如下:
public class Solution {
    public int singleNumber(int[] nums) {
        if(nums == null) return -1;
        int result = 0;
        for(int i = 0; i < 32; i++) {
            int sumBit = 0;
            for(int j = 0; j < nums.length; j++) {
                sumBit += (nums[j] >> i) & 1;
            }
            result |= (sumBit % 3) << i;
        }
        return result;
    }
}
0
0
分享到:
评论

相关推荐

    leetcode Single Number II - 位运算处理数组中的数 - 代金桥 - 博客园1

    《位运算处理数组中的数——以LeetCode Single Number II为例》 在计算机科学中,位运算是一种高效且灵活的数据处理手段,尤其在处理数组中特定数值的问题时,它能展现出强大的能力。LeetCode上的Single Number II...

    Single Number调试用demo

    《Single Number算法详解与调试演示》 在编程领域,算法是解决问题的核心工具,而Single Number问题则是一个典型的算法题目。这个题目要求在一个整数数组中,找出唯一出现一次的数字,而其他数字都出现了两次。这是...

    python-leetcode题解之137-Single-Number-II

    python python_leetcode题解之137_Single_Number_II

    python-leetcode面试题解之第137题只出现一次的数字II-题解.zip

    在本压缩包中,我们关注的是一个Python编程与LeetCode面试相关的题目——“只出现一次的数字II”(Single Number II)。这是一道常见的数据结构与算法问题,常常出现在求职面试中,对于考察应聘者对位操作、哈希表...

    常见算法题答案及解析

    34. Single Number II:数组中除一个数字外,其他数字都出现了三次,找出只出现一次的数字。 六、其他 35. Spiral Matrix:按螺旋方式打印矩阵。 36. Integer to Roman:将整数转换为罗马数字。 37. Roman to ...

    Leetcode book刷题必备

    34. Single Number II:找出数组中唯一不出现一次的数字,数组中每个数字出现三次。 【杂项】 35. Spiral Matrix:螺旋遍历矩阵。 36. Integer to Roman:整数转换成罗马数字。 37. Roman to Integer:罗马数字转换...

    leetcode java

    - "数组中两个数字只出现一次"(Single Number II)则是进一步考察位运算技巧。 ** Miscellaneous(杂项)** 杂项部分包括了一些不那么容易归类的问题,如螺旋矩阵(Spiral Matrix)、整数转罗马数字(Integer to ...

    颜色分类leetcode-leetcode.etc:OJ、leetcode等解决方案

    Number(落单的数) 、 / Medium Single Number II(落单的数 II) 、 Medium Single Number III(落单的数 III) Medium Hash Function(哈希函数) Easy Space Replacement(空格替换) Easy Insert Interval Easy Two ...

    python-leetcode题解之136-Single-Number

    python python_leetcode题解之136_Single_Number

    LeetCode最全代码

    137 | [Single Number II](https://leetcode.com/problems/single-number-ii/) | [C++](./C++/single-number-ii.cpp) [Python](./Python/single-number-ii.py) | _O(n)_ | _O(1)_ | Medium ||| 190 | [Reverse Bits]...

    leetcode-cpp刷题

    - **2.1.24 Single Number II** - 找出数组中只出现一次的数字,其余数字均出现三次。 - 实现思路:位操作,利用位掩码记录每位出现次数。 - **2.2 单链表** - **2.2.1 Add Two Numbers** - 两个链表表示的...

    js-leetcode题解之136-single-number.js

    javascript js_leetcode题解之136-single-number.js

    RandomNumber

    在Xcode中,开发者可以创建一个新的项目,选择Single View App模板,然后在主视图控制器中编写代码来实现随机数的生成。 在Objective-C中,我们可以使用`arc4random_uniform()`函数来生成指定范围内的随机数。这个...

    B04_2841_EX08.zip_2841_Number Ten

    As each number is read, print it only if it is not a duplicate of a number already read. Prepare for the “worst case” in which all 20 numbers are different. Use the smallest possible array to solve...

    Make3D: Learning 3D Scene Structure from a Single Still Image

    We consider the problem of estimating detailed 3D structure from a single still image of an unstructured environment. Our goal is to create 3D models that are both quantitatively accurate as well as ...

    只出现一次的数字(java代码).docx

    - `Solution` 类包含了一个名为 `singleNumber` 的方法,该方法接收一个整型数组 `nums` 作为参数。 - 在 `singleNumber` 方法内部,定义了一个变量 `result` 初始化为 0。 - 使用增强型 for 循环遍历数组 `nums`,...

    three_hidden_regression_1.rar_Regression number_desired _voice c

    Deep Mixture density network for voice conversion. Single layer Multi Layer Perceptron Neural Network with desired number of mixure components.

    C语言实验作业

    As each number is read, print it only if it is not a duplicate of a number already read. Prepare for the “worst case” in which all 20 numbers are different. Use the smallest possible array to solve...

    PAT甲级 1024 Palindromic Number

    PAT甲级 1024 Palindromic Number A number that will be the same when it is written... All single digit numbers are palindromic numbers. Non-palindromic numbers can be paired with palindromic ones via a se

Global site tag (gtag.js) - Google Analytics