C语言 | Leetcode C语言题解之第136题只出现一次的数字

题目:

题解:

cpp 复制代码
class Solution {
public:
    vector<int> singleNumbers(vector<int>& nums) {
        int eor = 0;
        for (int num:nums)
            eor ^= num;
        int rightOne = eor & (~eor + 1); // 提取出最右的1
        int onlyOne = 0;
        for (int cur : nums) {
            if ((cur & rightOne) != 0)
                onlyOne ^= cur;
        return vector<int>{onlyOne, eor^onlyOne};
    }
};
相关推荐
Nil20820 分钟前
leetcode 739每日温度
算法·leetcode·职场和发展
老王爱玩车1 小时前
工具函数——清空输入缓冲区
c语言·开发语言·学习
xqqxqxxq1 小时前
LeetCode Hot100 矩阵专题题解笔记
笔记·leetcode·矩阵
wuminyu2 小时前
JEP491中synchronized关键字引发的平台线程钉住解决方法简介
java·linux·c语言·jvm·c++
All for pursuit.2 小时前
【贪心-4】581.最短无序连续子数组
数据结构·c++·算法·leetcode
mmmmath_33 小时前
LeetCode.020.有效的括号
数据结构·算法·leetcode
All for pursuit.4 小时前
【回溯-2】22.括号生成
数据结构·c++·算法·leetcode
longlongzihan4 小时前
LeetCode 1004.最大连续1的个数III 滑动窗口及动态规划题解
c++·算法·leetcode·dp·滑动窗口
phltxy4 小时前
C 语言文件操作:让数据从内存走向持久化
c语言·网络·数据库
大圣编蚕4 小时前
C语言怎么写小游戏?从零开始做一个贪吃蛇
c语言·开发语言