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;
}
相关推荐
风筝在晴天搁浅36 分钟前
hot100 239.滑动窗口最大值
数据结构·算法·leetcode
LYFlied1 小时前
【算法解题模板】-解二叉树相关算法题的技巧
前端·数据结构·算法·leetcode
Darken032 小时前
基于C语言的学习---if语句
c语言·学习·if语句
菜鸟233号3 小时前
力扣78 子集 java实现
java·数据结构·算法·leetcode
json{shen:"jing"}4 小时前
2-C语言的运算符和表达式
c语言·开发语言
月明长歌4 小时前
【码道初阶】【Leetcode94&144&145】二叉树的前中后序遍历(非递归版):显式调用栈的优雅实现
java·数据结构·windows·算法·leetcode·二叉树
DanyHope4 小时前
《LeetCode 49. 字母异位词分组:哈希表 + 排序 全解析》
算法·leetcode·哈希算法·散列表
iAkuya4 小时前
(leetcode) 力扣100 15轮转数组(环状替代)
数据结构·算法·leetcode
沪漂的码农4 小时前
UDS诊断物理层时间参数详解技术文章
c语言·can·uds
努力学算法的蒟蒻4 小时前
day38(12.19)——leetcode面试经典150
算法·leetcode·面试