尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

C语言/数据结构位运算题解:异或XOR找出星球探险中的“独特能量石“——只出现一次的数字

发布时间:2026/9/27 5:31:16

资讯中心
01
ARTICLE

C语言/数据结构位运算题解:异或XOR找出星球探险中的“独特能量石“——只出现一次的数字

C语言/数据结构位运算题解:异或XOR找出星球探险中的“独特能量石“——只出现一次的数字
问题描述小M是一位勇敢的太空探险家他在探索一颗神秘星球时发现了一串奇特的能量石序列。这些能量石上刻有不同的整数能量值但奇怪的是除了一个能量石的能量值之外其他所有能量值都恰好出现了两次。传说中那个独特的能量石是打开星球宝藏的关键小M需要你的帮助快速找出那个独特能量石的能量值以便继续他的冒险。要求设计一个算法在 O(n) 的时间复杂度内找出只出现一次的能量值其中 n 是能量石的数量。尽量减少额外空间的使用以展现你的算法优化技巧。测试样例样例1输入energyStones [5, 3, 5, 2, 3, 8, 8]输出2解释能量值 5、3、8 都出现了两次只有 2 出现一次因此 2 是独特的能量石。样例2输入energyStones [10, 20, 10, 30, 20, 40, 40]输出30解释能量值 10、20、40 都出现了两次只有 30 出现一次因此 30 是独特的能量石。样例3输入energyStones [0, 1, 1, 2, 2, 3, 3]输出0解释能量值 1、2、3 都出现了两次只有 0 出现一次因此 0 是独特的能量石。样例4输入energyStones [5]输出5解释只有一个能量石因此 5 就是独特的能量石。约束条件1 ≤ energyStones.length ≤ 10010 ≤ energyStones[i] ≤ 1000能量石的数量为奇数除了一个能量值只出现一次外其余每个能量值都恰好出现两次程序代码#include stdio.hint findUnique(int* energyStones, int energyStonesSize) {int result 0;for (int i 0; i energyStonesSize; i) {result ^ energyStones[i];}return result;}int main() {int test1[] {5, 3, 5, 2, 3, 8, 8};int test2[] {10, 20, 10, 30, 20, 40, 40};int test3[] {0, 1, 1, 2, 2, 3, 3};int test4[] {5};printf(%d\n, findUnique(test1, 7)); // 2printf(%d\n, findUnique(test2, 7)); // 30printf(%d\n, findUnique(test3, 7)); // 0printf(%d\n, findUnique(test4, 1)); // 5return 0;}#include stdio.h int findUnique(int* energyStones, int energyStonesSize) { int result 0; for (int i 0; i energyStonesSize; i) { result ^ energyStones[i]; } return result; } int main() { int test1[] {5, 3, 5, 2, 3, 8, 8}; int test2[] {10, 20, 10, 30, 20, 40, 40}; int test3[] {0, 1, 1, 2, 2, 3, 3}; int test4[] {5}; printf(%d\n, findUnique(test1, 7)); // 2 printf(%d\n, findUnique(test2, 7)); // 30 printf(%d\n, findUnique(test3, 7)); // 0 printf(%d\n, findUnique(test4, 1)); // 5 return 0; }运行结果
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。