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};
    }
};
相关推荐
蓝牙先生几秒前
简易TCP C/S通信
c语言·tcp/ip·算法
2501_9418705619 分钟前
Python在高并发微服务数据同步与分布式事务处理中的实践与优化
leetcode
Old_Driver_Lee41 分钟前
C语言常用语句
c语言·开发语言
松涛和鸣1 小时前
从零开始理解 C 语言函数指针与回调机制
linux·c语言·开发语言·嵌入式硬件·排序算法
2501_941147712 小时前
高并发微服务架构Spring Cloud与Dubbo在互联网优化实践经验分享
leetcode
无限进步_4 小时前
C语言动态内存的二维抽象:用malloc实现灵活的多维数组
c语言·开发语言·数据结构·git·算法·github·visual studio
Swift社区5 小时前
LeetCode 432 - 全 O(1) 的数据结构
数据结构·算法·leetcode
资深web全栈开发5 小时前
LeetCode 1015. 可被 K 整除的最小整数 - 数学推导与鸽巢原理
算法·leetcode·职场和发展
leoufung6 小时前
链表题目讲解 —— 删除链表的倒数第 n 个节点(LeetCode 19)
数据结构·leetcode·链表