关闭

leetcode 260. Single Number III

53人阅读 评论(0) 收藏 举报
分类:

本题主要是关注位运算的,题目如下:

260. Single Number III

 
 My Submissions
  • Total Accepted: 45214
  • Total Submissions: 96656
  • Difficulty: Medium

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:

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

本题重点就是:两个相同的数异或为0,所以当把所有的数异或之后,得到的就是那两个只出现一次的数的异或。然后AxorB &(~(AxorB-1))可以获得AxorB中二进制位中最早出现1的那一位,A与B在这一位上肯定不同,我们可以据此把这两个数分开,然后再每组里面再进行异或,异或结果就是那两位数。




0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:190次
    • 积分:31
    • 等级:
    • 排名:千里之外
    • 原创:3篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档