Single Number III问题及解法
来源:互联网 发布:经营杠杆的理解知乎 编辑:程序博客网 时间:2024/05/24 06:49
问题描述:
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.
示例:
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?
通过异或,可得两个只出现一次的值a和b的异或值,然后我们利用异或值把原数组分成两组,每组分别异或,最终可得答案。
过程详见代码:
class Solution {public:vector<int> singleNumber(vector<int>& nums) {int diff = accumulate(nums.begin(),nums.end(),0,bit_xor<int>());diff &= -diff; // 找到两者按位异或为1的某一位,其余位置0vector<int> res = {0,0};for (int num : nums){if ((num & diff) == 0) // 分组{res[0] ^= num;}else res[1] ^= num;}return res;}};
阅读全文
0 0
- Single Number III问题及解法
- Single Number问题及解法
- Single Number II问题及解法
- LeetCode260——Single Number III精彩解法
- Single Number III
- Single Number III
- [LeetCode] Single Number III
- [leetcode] Single Number III
- 260 Single Number III
- [Leetcode]Single Number III
- [leetcode] Single Number III
- Leetcode: Single Number III
- 260 Single Number III
- LeetCode || Single Number III
- Single Number III
- Single Number III
- Single Number III
- [刷题]Single Number III
- 【BZOJ3091】城市旅行
- oracle知识点的梳理及复习
- 环境变量错误导致Linux指令不可用
- 程序员的自信和骄傲
- SqlSession(四)
- Single Number III问题及解法
- Java中的集合
- Volley源码分析
- Python Web入门:Django学习与实践之三(models)
- Hibernate 之实体类之间的关系
- 埃氏筛法
- 【转】几种常用的优化方法
- springMVC的请求参数乱码问题
- 合并排序的非递归实现(自底向上设计)