C语言/数据结构位运算题解:异或XOR找出优秀项目组中的“独特编号“——只出现一次的数字

问题描述

一年一度的优秀项目组初选评比开始了!每个项目组都有一个独特的编号,但有趣的是,除了一个项目组之外,所有其他项目组的编号都恰好出现了两次(因为每个项目组都有一个小分组)。班长小C需要快速找出那个独特的项目组编号,以便通知他们直接进入下一轮评选。

要求:

  1. 设计一个算法,在 O(n) 的时间内找到独特的项目组编号,其中 n 是项目组的数量。
  2. 尽量减少额外空间的使用,以体现你的算法优化能力。

测试样例

样例1:

输入:groups = [101, 101, 202, 202, 303, 303, 404, 505, 505] 输出:404 解释:编号 404 的项目组是唯一没有配对的,直接进入下一轮。

样例2:

输入:groups = [0, 1, 0, 1, 2] 输出:2 解释:编号 2 的项目组只出现一次,是独特的。

样例3:

输入:groups = [7, 3, 3, 7, 10] 输出:10 解释:10 是唯一的独特编号,直接晋级。

约束条件

  • 1 ≤ groups.length ≤ 1001
  • 0 ≤ groupsi ≤ 1000
  • 项目组数量为奇数
  • 除了一个项目组编号只出现一次外,其余每个编号都恰好出现两次

程序代码

#include <stdio.h>

int findUnique(int* groups, int groupsSize) {

int result = 0;

for (int i = 0; i < groupsSize; i++) {

result ^= groupsi;

}

return result;

}

int main() {

int groups1\[\] = {101, 101, 202, 202, 303, 303, 404, 505, 505};

int groups2\[\] = {0, 1, 0, 1, 2};

int groups3\[\] = {7, 3, 3, 7, 10};

printf("%d\n", findUnique(groups1, 9)); // 404

printf("%d\n", findUnique(groups2, 5)); // 2

printf("%d\n", findUnique(groups3, 5)); // 10

return 0;

}

cpp 复制代码
#include <stdio.h>

int findUnique(int* groups, int groupsSize) {
    int result = 0;
    for (int i = 0; i < groupsSize; i++) {
        result ^= groups[i];
    }
    return result;
}

int main() {
    int groups1[] = {101, 101, 202, 202, 303, 303, 404, 505, 505};
    int groups2[] = {0, 1, 0, 1, 2};
    int groups3[] = {7, 3, 3, 7, 10};
    
    printf("%d\n", findUnique(groups1, 9));  // 404
    printf("%d\n", findUnique(groups2, 5));  // 2
    printf("%d\n", findUnique(groups3, 5));  // 10
    
    return 0;
}

运行结果

相关推荐
彦2 小时前
C和C++笔记
c语言·c++·笔记
Code_Solitude3 小时前
反码,补码,原码
c语言
FLJwu3 小时前
运动相机按键与连接器硬件选型实战02:USB‑C接口选型|防水失效、虚接断连、腐蚀烧口量产大坑
c语言·开发语言·经验分享·数码相机·相机·运动相机·oem 量产
fj800j3 小时前
首助记账本新增「标签管理」功能:跨分类归集项目账目,一个账本管完所有事
数据结构·经验分享·笔记·学习·分布式账本
垆边人似月.3 小时前
分割数组的最大值最小化(200分 / 二分答案 + 贪心)
数据结构·算法·排序算法
Zw-awa5 小时前
陀螺小车传奇之00011000
c语言·stm32
程序员清风5 小时前
排序算法:从冒泡排序到归并排序
数据结构·算法·排序算法
万年咸鱼5 小时前
C语言内功心法篇——变量与数据类型
c语言·jvm·算法
Ada's15 小时前
【计算机基础系列】003:Python数据结构
开发语言·数据结构·python