博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode] 260 - Single Number III
阅读量:5169 次
发布时间:2019-06-13

本文共 924 字,大约阅读时间需要 3 分钟。

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

class Solution {

public:
  vector<int> singleNumber(vector<int>& nums) {
    int len = nums.size();
    int abxor = 0;
    for (int i=0; i<len; i++) {
      abxor ^= nums[i];
    }
    int mask = abxor & (~(abxor-1));
    int a = 0;
    int b = 0;
    for (int i=0; i<len; i++) {
      if ((mask&nums[i]) == 0) {
        a ^= nums[i];
      } else {
        b ^= nums[i];
      }
    }
    return vector<int>({a, b});
  }
};

 

转载于:https://www.cnblogs.com/shoemaker/p/4767949.html

你可能感兴趣的文章
windows下的C++ socket服务器(4)
查看>>
css3 2d转换3d转换以及动画的知识点汇总
查看>>
【Java】使用Eclipse进行远程调试,Linux下开启远程调试
查看>>
对Vue为什么不支持IE8的解释之一
查看>>
计算机改名导致数据库链接的诡异问题
查看>>
Java8内存模型—永久代(PermGen)和元空间(Metaspace)(转)
查看>>
ObjectiveC基础教程(第2版)
查看>>
centos 引导盘
查看>>
Notes of Daily Scrum Meeting(12.8)
查看>>
Apriori算法
查看>>
onlevelwasloaded的调用时机
查看>>
lr_start_transaction/lr_end_transaction事物组合
查看>>
CodeIgniter学习笔记(四)——CI超级对象中的load装载器
查看>>
.NET CLR基本术语
查看>>
ubuntu的home目录下,Desktop等目录消失不见
查看>>
建立,查询二叉树 hdu 5444
查看>>
[Spring框架]Spring 事务管理基础入门总结.
查看>>
2017.3.24上午
查看>>
Python-常用模块及简单的案列
查看>>
LeetCode 159. Longest Substring with At Most Two Distinct Characters
查看>>