C语言/数据结构算法题:异或运算找出唯一出现一次的数字(O(n)时间+O(1)空间)
📅 2026/7/15 17:38:35
👁️ 次浏览
问题描述在一个班级中每位同学都拿到了一张卡片上面有一个整数。有趣的是除了一个数字之外所有的数字都恰好出现了两次。现在需要你帮助班长小C快速找到那个拿了独特数字卡片的同学手上的数字是什么。要求设计一个算法使其时间复杂度为 O(n)其中 n 是班级的人数。尽量减少额外空间的使用以体现你的算法优化能力。约束条件1 ≤ cards.length ≤ 10010 ≤ cards[i] ≤ 1000班级人数为奇数除了一个数字卡片只出现一次外其余每个数字卡片都恰好出现两次代码如下#include stdio.hint findUnique(int* cards, int cardsSize) {int result 0;for (int i 0; i cardsSize; i) {result ^ cards[i];// 异或操作相同为0不同为1}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};printf(%d\n, findUnique(cards1, 9));printf(%d\n, findUnique(cards2, 5));printf(%d\n, findUnique(cards3, 5));return 0;}运行结果解题思路核心思想异或运算XOR异或运算的性质交换律a ^ b b ^ a结合律(a ^ b) ^ c a ^ (b ^ c)自反性a ^ a 0恒等性a ^ 0 a执行过程对于数组{1, 1, 2, 2, 3, 3, 4, 5, 5}步骤当前值result异或运算初始—0—1110 ^ 1 12101 ^ 1 03220 ^ 2 24202 ^ 2 05330 ^ 3 36303 ^ 3 07440 ^ 4 48514 ^ 5 19541 ^ 5 4结果 4✅复杂度分析指标值时间复杂度O(n) — 只需遍历一次数组空间复杂度O(1) — 只使用一个整数变量result关键规律异或就是“无进位加法”XOR异或在二进制中的本质是按位相加但不进位。
从动态到手动:为什么你需要 Hy3
对于刚从 X11 迁移到 Wayland,或者习惯了 i3、Sway 这类传统平铺窗口管理器的 Linux 用户来说,Hyprland 的默认体验往往带有一种“过度的智能感”。Hyprland 原生采用的是动态平铺(Dynamic Tiling&…
📅 2026/7/15 17:38:35
如何高效下载Google Drive大文件:Python开发者完整指南 【免费下载链接】gdown Google Drive public file downloader when curl/wget fails. 项目地址: https://gitcode.com/gh_mirrors/gd/gdown
在数据科学、机器学习和日常开发工作中,从Google…
📅 2026/7/15 17:38:35
网络安全到底学什么?有没有适合零基础的学习路线?学多久可以达到就业水平?渗透测试、红队、安全运维应该怎么选择?所以整理了一份网络安全成长路线,希望帮助正在入门的小伙伴少走弯路。一、基础阶段:计算机…
📅 2026/7/15 17:38:35
很多人问我,为啥网站流量总上不去?是不是算法又变了?其实真没你想得那么玄乎。这篇文不整那些虚头巴脑的理论,直接告诉你咋做,照着做,哪怕你是小白也能看懂。咱先说个大实话,以前搞SEO,堆关键词、买外链,那叫一个快。现在?呵呵,全是坑。Google那算法变得比翻书还快,…
📅 2026/7/15 18:33:08
1. 为什么需要两位数乘法速算技巧?记得上周在超市排队结账时,前面一位阿姨拿着计算器反复核对购物清单,而我用速算技巧心算出总价只用了不到10秒。收银员扫描完商品时,我已经报出了准确金额,周围排队的人都投来惊讶的目…
📅 2026/7/15 18:33:10
1. 项目概述:为什么RigidbodyBenchmark是理解Mirror网络同步的绝佳入口如果你正在学习Unity的Mirror网络框架,并且已经看过了基础的同步变量、远程过程调用(RPC)和网络身份(NetworkIdentity)的教程…
📅 2026/7/15 18:33:10
1. CH340N芯片选型与核心特性解析第一次接触CH340N是在五年前的一个智能家居项目上,当时为了给STM32开发板添加USB调试功能,对比了市面上五六种USB转串口方案。最终选择CH340N的原因很简单——它用起来就像老朋友的电话一样可靠,而且价格还不…
📅 2026/7/15 18:33:10
1. FPGA工程师的黄金赛道在哪里?最近几年,经常有学生和刚入行的工程师问我:"现在做FPGA还有前途吗?"作为一个在这个行业摸爬滚打了十几年的老兵,我想说FPGA不仅没有过时,反而在多个新兴领域迎来了…
📅 2026/7/15 18:33:10
1. 项目概述:从字符处理看C/C编程的基石 在C和C的世界里,处理字符串和字符是每个程序员都无法绕开的基本功。你可能觉得“小写字母转大写字母”这个题目太简单了,甚至有些“小儿科”。但恰恰是这种看似简单的任务,最能暴露一个程序…
📅 2026/7/15 18:33:10
1. COM线程模型基础与CoInitializeEx核心作用在Windows平台开发中,组件对象模型(COM)的线程处理机制一直是开发者必须掌握的底层知识。作为COM初始化的门户函数,CoInitializeEx不仅决定了对象在何种线程环境下运行,更影响着整个组件的并发性能…
📅 2026/7/15 0:00:17
1. 为什么M芯片Mac用户需要降级到Monterey? 去年刚拿到M2芯片的MacBook Pro时,我第一时间升级到了Ventura系统。结果第三天就遇到了微信闪退、Final Cut Pro渲染卡顿的问题。后来在开发者论坛发现,不少专业软件对Ventura的适配都存在问题。这…
📅 2026/7/15 0:00:17
1. 背景与核心概念在AI大模型快速发展的今天,许多开发者和研究者都面临一个现实问题:如何在有限的硬件预算下实现高效的本地大模型部署。特别是对于个人开发者和小型团队来说,购买最新的高端显卡成本高昂,而利用现有的或二手硬件资…
📅 2026/7/15 0:00:17
豆包openclaw最近圈子里都在聊豆包openclaw,我也没忍住,掏腰包入手了一套。说实话,刚拿到手的时候,心里是打鼓的。毕竟市面上类似的智能硬件太多了,有的吹得天花乱坠,用起来却是一堆bug。为了不让大家的钱打水漂,我连续用了半个月。从开箱到日常高频使用,甚至故意测试它…
📅 2026/7/14 6:35:02
SQLyog 13.3.1 社区版在Windows 10/11上的完整安装与连接指南 对于刚接触MySQL数据库管理的开发者和学生来说,选择一个直观易用的图形化管理工具至关重要。SQLyog作为一款轻量级但功能强大的MySQL GUI工具,能够显著提升数据库操作的效率和体验。本文将详…
📅 2026/7/14 12:06:52
SPEC CPU 2006 跨平台基准测试深度实战:ARM/X86/MIPS 架构配置优化与结果分析方法论在当今多元化的计算架构时代,如何客观评估不同处理器平台的真实性能成为系统工程师和性能优化专家的核心挑战。SPEC CPU 2006 作为业界公认的计算密集型基准测试套件&am…
📅 2026/7/15 14:09:20
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/14 15:11:56
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/15 2:24:18
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/14 15:11:56