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

题目:

题解:

cpp 复制代码
int* singleNumber(int* nums, int numsSize, int* returnSize) {
    int xorsum = 0;
    for (int i = 0; i < numsSize; i++) {
        xorsum ^= nums[i];
    }
    // 防止溢出
    int lsb = (xorsum == INT_MIN ? xorsum : xorsum & (-xorsum));
    int type1 = 0, type2 = 0;
    for (int i = 0; i < numsSize; i++) {
        int num = nums[i];
        if (num & lsb) {
            type1 ^= num;
        } else {
            type2 ^= num;
        }
    }

    int *ans = (int *)malloc(sizeof(int) * 2);
    ans[0] = type1;
    ans[1] = type2;
    *returnSize = 2;
    return ans;
}
相关推荐
aramae7 分钟前
大话数据结构之<队列>
c语言·开发语言·数据结构·算法
大锦终18 分钟前
【算法】前缀和经典例题
算法·leetcode
cccc来财1 小时前
Java实现大根堆与小根堆详解
数据结构·算法·leetcode
程序员编程指南2 小时前
Qt 数据库连接池实现与管理
c语言·数据库·c++·qt·oracle
恣艺2 小时前
LeetCode 854:相似度为 K 的字符串
android·算法·leetcode
李永奉3 小时前
STM32-定时器的基本定时/计数功能实现配置教程(寄存器版)
c语言·开发语言·stm32·单片机·嵌入式硬件
刚入坑的新人编程3 小时前
暑期算法训练.9
数据结构·c++·算法·leetcode·面试·排序算法
麦子邪4 小时前
C语言中奇技淫巧04-仅对指定函数启用编译优化
linux·c语言·开发语言
华强笔记5 小时前
C程序内存布局详解
服务器·c语言
程序员编程指南5 小时前
Qt OpenGL 集成:开发 3D 图形应用
c语言·数据库·c++·qt·3d