资讯专栏INFORMATION COLUMN

260. Single NumberIII

leonardofed / 2692人阅读

摘要:题目解答只能用厉害来形容了思路是第一个找到两个的一个同一位不同的第二个是通过这把所以数分成两个,因为其它数都是有两个,所以在这两组中,只是这两个数是单一的。再用以后就可以分别求出这两个数了。

题目:
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?

解答:
只能用厉害来形容了!思路是第一个loop找到两个single number的一个同一位不同的bit;第二个loop是通过这bit把所以数分成两个group,因为其它数都是有两个,所以在这两组中,只是这两个数是单一的。再用以后就可以分别求出这两个数了。

public int[] singleNumber(int[] nums) {
    int diff = 0;
    for (int num : nums) {
        diff ^= num;
    }
    //我们有了这两个数不同的bit
    int[] result = new int[2];
    diff &= -diff;
    for (int num : nums) {
        if ((num & diff) == 0) {
            result[0] ^= num;
        } else {
            result[1] ^= num;
        }
    }
    return result;
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/64933.html

相关文章

  • leetcode260. Single Number III

    摘要:要求我们找到这两个数字。举例解释一下第二个位运算一个数的负数是通过计算其正数的补码获得的。比如的八位二进制为,那么其反码为,再在反码上加一得到其补码也就是的二进制形式。从而获得二进制最右侧的位置。 题目要求 Given an array of numbers nums, in which exactly two elements appear only once and all the...

    Terry_Tai 评论0 收藏0
  • ICCV 2021 口罩人物身份鉴别全球挑战赛冠军方案分享

    摘要:损失函数此次竞赛我们采用的基线损失函数为,该损失函数在训练过程中模拟课程学习的思想,按照样本从易到难的顺序进行训练。 1. 引言10月11-17日,万众期待的国际计算机视觉大会 ICCV 2021 (International Conference on Computer Vision) 在线上如期举行,受到全...

    nidaye 评论0 收藏0
  • 由三道 LeetCode 题目简单了解一下位运算

    摘要:使用位运算数组只出现一次数字的数组得到最低的有效位,即两个数不同的那一位看完上面的解法,我脑海中只有问号的存在,啥意思啊下面就让我们简单了解一下位运算并解析一下这三道题目。另,负数按补码形式参加按位与运算。你可做过这几道题? 在面试的准备过程中,刷算法题算是必修课,当然我也不例外。某天,我刷到了一道神奇的题目: # 136. 只出现一次的数字 给定一个非空整数数组,除了某个元素只出现一次以外...

    daydream 评论0 收藏0
  • 由三道 LeetCode 题目简单了解一下位运算

    摘要:简单介绍一下位运算异或运算异或逻辑的关系是当不同时,输出当相同时,输出。另,负数按补码形式参加按位与运算。使一个数的最低位为零,可以表示为。,截止到这儿,三道题目中使用的位运算介绍完毕,那么这里我们插入一下的详细题解。你可做过这几道题? 在面试的准备过程中,刷算法题算是必修课,当然我也不例外。某天,我刷到了一道神奇的题目: # 136. 只出现一次的数字 给定一个非空整数数组,除了某个元素只...

    刘明 评论0 收藏0
  • 246. 247. 248. Strobogrammatic Number I II II

    摘要:题目解答题目解答先考虑最底层的两种情况,当和当的时候,就是最中间的数为空还是存在唯一的一个数。然后我们在这个基础上,用循环两个数两个数地一起向外扩张。扩张后的结果存在里,作为再服务于上一层的扩张,得到最终结果。 246.Strobogrammatic NumberI题目:A strobogrammatic number is a number that looks the same w...

    Fundebug 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<