`

Single Number III

阅读更多
Given an array of numbers nums, in which exactly two elements appear only once and all the other elements appear exactly twice. Find the two elements that appear only once.

For example:

Given nums = [1, 2, 1, 3, 2, 5], return [3, 5].

Note:
The order of the result is not important. So in the above example, [5, 3] is also correct.
Your algorithm should run in linear runtime complexity. Could you implement it using only constant space complexity?

给定一个数组,里面有两个数字出现了一次,其他都出现了两次,找出这两个元素,要求在线性时间内完成。我们用位运算来完成,首先将数组中所有的元素进行异或运算得到一个值helper,然后用helper & (~(helper - 1)) 这样就得到了一个某一位为1其他位全为0的数tell,并且1所在的位上两个单独出现的数肯定不同。我们通过tell将数组中的元素分为两部分,分别与tell进行位与运算,最终得到两个单独的数。代码如下:
public class Solution {
    public int[] singleNumber(int[] nums) {
        if(nums == null || nums.length < 2) return new int[0];
        int helper = 0;
        for(int i = 0; i < nums.length; i++) {
            helper ^= nums[i];
        }
        int tell = helper & (~(helper - 1));
        int single1 = 0;
        int single2 = 0;
        for(int i = 0; i < nums.length; i++) {
            if((nums[i] & tell) == 0) {
                single1 ^= nums[i];
            } else {
                single2 ^= nums[i];
            }
        }
        int[] result = {single1, single2};
        return result;
    }
}
0
2
分享到:
评论

相关推荐

    Single Number调试用demo

    给喜欢算法的同学准备的Single Number调试用demo。

    cpp-算法精粹

    Single Number III Power of Two Missing Number Maximum Product of Word Lengths Bitwise AND of Numbers Range Power of Three Rectangle Area 数论 Happy Number Ugly Number Ugly Number II Super Ugly Number ...

    颜色分类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 ...

    LeetCode最全代码

    260 | [Single Number III](https://leetcode.com/problems/single-number-iii/) | [C++](./C++/single-number-iii.cpp) [Python](./Python/single-number-iii.py) | _O(n)_ | _O(1)_ | Medium || 268| [Missing ...

    Leetcode的ac是什么意思-LeetCodeInJava:leetcode-java

    Leetcode的ac是什么意思 LeetCodeInJava List #98 Validate Binary Search Tree #100 Same ...Single Number ...Number ...Single Number III #274 H-Index #283 Move Zeroes #292 Nim Game #318 Maximum P

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

    扩展二:给定一个包含n个整数的数组,有一个整数x出现b次,一个整数y出现c次,其他所有的数均出现a次,其中b和c均不是a的倍数,找出x和y。中每一位二进制位1出

    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 ...

    Single-Tone Parameter Estimation from

    parameters of single-frequency tones from a finite number of noisy discrete-time observations. The problem has application to data set testing, telephone transmission system testing, radar, and other ...

    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

    sum it up !

    Given a specified total t and a list of n integers, find all distinct sums using numbers from the list that add up ... and a single number counts as a sum.) Your job is to solve this problem in general.

    SQL 语言函数集SQL 语言函数集SQL 语言函数集

    Abs(number) 取得数值的绝对值。 Asc(String) 取得字符串表达式的第一个字符ASCII 码。 Atn(number) 取得一个角度的反正切值...CSng(expression) 转换表达式为Single 型态。 CStr(expression) 转换表达式为String 型

    Barcode Professional 6.0 for Windows Forms

    If you are a licensee of the “ASP.NET Version” of THE PRODUCT, then you are granted a license as a single individual to distribute THE PRODUCT royalty-free along with an unlimited number of ...

    BarcodeProfessionalSDK20

    If you are a licensee of the “ASP.NET Version” of THE PRODUCT, then you are granted a license as a single individual to distribute THE PRODUCT royalty-free along with an unlimited number of ...

    Quantum Random Number Generator-crx插件

    真正的量子随机数生成器。 该随机数生成器使用ANU Quantum随机数服务器。 此扩展提供了访问真正随机数的权限,并允许用户指定随机数的范围。 该扩展名中的随机数对于每个用户都是唯一的,并且可以安全地传输。...

    matlab进行图像拼接代码-Single-perspective-warps:我们的论文“Single-PerspectiveWarpsin

    matlab进行图形代码自然图像拼接中的单视角扭曲 该存储库是我们对 IEEE TIP 2019 论文《自然图像拼接中的单视角扭曲》的实现。...number={}, pages={724--735}, year={2020}, doi={10.1109/TIP.201

    Modbus Poll Screen dumps

    Can write a single register. Simple write multiple coils to a slave. Screen dump of communication traffic. You can save the data to a text file. Use the test center to compose your own strings ...

    利用Python实现的BP神经网络进行人脸识别

    #定义 #nInput : Number of Neuron in input layer #nHide : Number of Neuron in hide layer #nOutput : Number of Neuron in output layer #studyspeed : Learning Rate network = NeuralNetWork(nInput = nInput...

Global site tag (gtag.js) - Google Analytics