尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
C语言/数据结构位运算题解:异或XOR找出卡牌游戏中的“幸运数字“——只出现一次的元素
问题描述小C所在的班级举行了一场有趣的卡牌游戏每位同学都拿到了一张写有整数的卡片。游戏规则是所有同学同时翻开自己的卡片但奇怪的是除了一个数字外其他所有数字都恰好出现了两次。这意味着有一位同学拿到了独一无二的数字卡片班长小C需要快速找出这位幸运同学手上的数字以便给予奖励。要求设计一个算法在 O(n) 的时间复杂度内找出只出现一次的数字其中 n 是班级的人数。尽量减少额外空间的使用理想情况下使用常数空间以体现算法的优化能力。提示考虑使用位运算的特性。测试样例样例1输入cards [1, 1, 2, 2, 3, 3, 4, 5, 5]输出4解释数字 1、2、3、5 都出现了两次只有数字 4 出现了一次。样例2输入cards [0, 1, 0, 1, 2]输出2解释数字 0 和 1 都出现了两次只有数字 2 出现了一次。样例3输入cards [7, 3, 3, 7, 10]输出10解释数字 7 和 3 都出现了两次只有数字 10 出现了一次。约束条件1 ≤ cards.length ≤ 1001cards.length 是奇数因为除了一个数字出现一次外其余数字都出现两次所以总人数为 2k10 ≤ cards[i] ≤ 1000除了一个数字卡片只出现一次外其余每个数字卡片都恰好出现两次程序代码#include stdio.hint findUnique(int* cards, int cardsSize) {int result 0;for (int i 0; i cardsSize; i) {result ^ cards[i];}return result;}int main() {int cards1[] {1, 1, 2, 2, 3, 3, 4, 5, 5};int cards2[] {0, 1, 0, 1, 2};int cards3[] {7, 3, 3, 7, 10};int size1 sizeof(cards1) / sizeof(cards1[0]);int size2 sizeof(cards2) / sizeof(cards2[0]);int size3 sizeof(cards3) / sizeof(cards3[0]);printf(%d\n, findUnique(cards1, size1)); // 4printf(%d\n, findUnique(cards2, size2)); // 2printf(%d\n, findUnique(cards3, size3)); // 10return 0;}#include stdio.h int findUnique(int* cards, int cardsSize) { int result 0; for (int i 0; i cardsSize; i) { result ^ cards[i]; } return result; } int main() { int cards1[] {1, 1, 2, 2, 3, 3, 4, 5, 5}; int cards2[] {0, 1, 0, 1, 2}; int cards3[] {7, 3, 3, 7, 10}; int size1 sizeof(cards1) / sizeof(cards1[0]); int size2 sizeof(cards2) / sizeof(cards2[0]); int size3 sizeof(cards3) / sizeof(cards3[0]); printf(%d\n, findUnique(cards1, size1)); // 4 printf(%d\n, findUnique(cards2, size2)); // 2 printf(%d\n, findUnique(cards3, size3)); // 10 return 0; }运行结果
RELATED

相关推荐

信息安全攻防实训平台-springboot + vue

信息安全攻防实训平台-springboot + vue

本项目为前几天收费帮学妹做的一个项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 基于springboot vue的信息安全攻防实训平台 前台登录网址: http://localhost:808…

📅 2026/10/31 2:14:12
GHelper使用指南:华硕笔记本4种性能场景的配置速查

GHelper使用指南:华硕笔记本4种性能场景的配置速查

GHelper使用指南:华硕笔记本4种性能场景的配置速查 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook, Exper…

📅 2026/11/1 7:21:55
系统架构设计师考试全真模拟题(六)

系统架构设计师考试全真模拟题(六)

系统架构设计师考试全真模拟题(六) 全真模拟,还原真实考试! 上午卷(选择题) 1-10 计算机系统基础 1. 冯诺依曼计算机的核心思想是( )。 A. 存储程序 B. 分布式计算 C. 并行处理 D. 云计算 2. 在CPU中,执行算术运算的部件是( )。 A. 控制器 B. 运算器 C. 存储…

📅 2026/10/6 20:20:00
MORE NEWS

更多资讯

📰

WOA优化VMD参数K与α:包络熵适应度及Matlab实战避坑

简介:面向计算机、电子信息工程、数学等专业学生及信号处理初学者,这份PDF资料围绕Matlab环境下的WOA-VMD展开,重点解决VMD中模态数K与惩罚因子alpha难以人工选取的问题。内容以鲸鱼优化算法自动寻优为主线,结合边际谱、频率图、收…

📰

AIGC落地实战:从重复工作流中识别高价值切口

1. 这不是概念炒作,而是正在发生的生产力迁移 “AIGC:一个值得探索的新蓝海?”——这个标题里藏着两个关键信号:一个是“ AIGC ”,它早已不是实验室里的名词,而是每天在设计师的图层面板里生成草稿、在运…

📰

CSP-J初赛选择题训练2021:分块刷题与错题复盘

很多人第一次认真做CSPJ初赛选择题训练2021的时候,都会经历一个很别扭的阶段:十套卷子刷完,正确率纹丝不动,错的地方还是那几处——补码的边界、二叉树的叶子数、快排的最坏情况、代码段里循环变量到底跑了几轮。对完答案&#xf…

📰

HBase与Neo4j集成架构:大规模图数据处理实战

1. HBase与Neo4j集成方案概述 在大规模图数据处理领域,HBase和Neo4j的结合堪称"天作之合"。我曾在某社交网络分析项目中采用这种架构,成功处理了超过10亿节点和50亿边的图数据。HBase负责存储原始数据和高吞吐量的读写操作,而Neo4j…

📰

金蝶云星空V7.3生产模块:基础数据与系统参数的协同控制逻辑

简介:本资源是金蝶云星空V7.3制造领域生产管理模块的官方培训课件,面向制造业企业ERP实施顾问、生产计划员、车间管理人员及金蝶系统运维人员,聚焦解决生产订单全周期管控、物料齐套分析、领退补料协同、在制过程追溯等核心业务痛点。课件为单…

📰

轻资产合伙人模式技术架构与管理系统设计

1. 轻资产合伙人模式的核心逻辑 在传统雇佣关系中,企业需要承担人力成本、设备投入和管理开销。而轻资产合伙人模式彻底重构了这一关系链——让参与者主动投入资源,同时共享收益。这种模式之所以能成立,关键在于平台方提供了三种核心价值&…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬