【优选算法必刷100题】第038题(位运算):消失的两个数字

【优选算法必刷100题】第038题(位运算):消失的两个数字

🔥个人主页:Cx330🌸

❄️个人专栏:《C语言》《LeetCode刷题集》《数据结构-初阶》《C++知识分享》

《优选算法指南-必刷经典100题》《Linux操作系统》:从入门到入魔

🌟心向往之行必能至


🎥Cx330🌸的简介:


目录

前言:

38. 消失的两个数字

算法原理(位运算):

思路:

位运算解法代码(C++):

代码一:位图

代码二:异或

博主手记(字体还请见谅哈):

总结:


前言:

聚焦算法题实战,系统讲解三大核心板块:“精准定位最优解”——优选算法,“简化逻辑表达,系统性探索与剪枝优化”——递归与回溯,“以局部最优换全局高效”——贪心算法,讲解思路与代码实现,帮助大家快速提升代码能力

位运算专题


38. 消失的两个数字

题目链接:

面试题 17.19. 消失的两个数字 - 力扣(LeetCode)

题目描述:

题目示例:

算法原理(位运算):
思路:

本题就是 268.丢失的数字+260.只出现一次的数字||| 组合起来的题。
先将数组中的数和【1,n+2】区间内的所有数【异或】在一起,问题就变成了:有两个数出现了【一次】,其余所有的数出现了【两次】。进而变成了 260.只出现了一次的数字||| 这道题

位运算解法代码(C++):
代码一:位图
class Solution { public: vector<int> missingTwo(vector<int>& nums) { //将所有数异或在一起 int ret=0; for(auto x:nums) ret^=x; for(int i=1;i<=nums.size()+2;i++) ret^=i; //找出a,b比特位不同的那一位 int differ=0; while(1) { if(((ret>>differ)&1)==1) break; else differ++; } //根据differ位不同将所有数划分为两大类 int a=0,b=0; for(auto x:nums) if(((x>>differ)&1)==1) b^=x; else a^=x; for(int i=1;i<=nums.size()+2;i++) if(((i>>differ)&1)==1) b^=i; else a^=i; return {a,b}; } };
代码二:异或
class Solution { public: vector<int> missingTwo(vector<int>& nums) { int temp=0; for(auto& x:nums) temp^=x; for(int i=1;i<=nums.size()+2;i++) temp^=i; //现在temp中剩下的是a^b,那么一定至少有一位是1,我们就提取最后一位 int ls=temp&(-temp); int a=0,b=0; for(auto&x:nums) { if(x&ls) a^=x; else b^=x; } for(int i=1;i<=nums.size()+2;i++) { if(i&ls) a^=i; else b^=i; } return {a,b}; } }; 

博主手记(字体还请见谅哈):


总结:

结语:本文介绍了使用位运算解决&quot;消失的两个数字&quot;问题的两种方法。问题可转化为找出两个只出现一次的数字。方法一通过异或所有数后找出差异位,将数字分为两类分别异或;方法二利用异或结果的最低位1作为区分标准。两种方法都实现了O(n)时间复杂度和O(1)空间复杂度的解决方案,适用于处理大规模数据

Read more

永久开源免费用!科哥打造的OCR文字检测工具推荐

永久开源免费用!科哥打造的OCR文字检测工具推荐 一款真正开箱即用、无需配置、不收一分钱的OCR文字检测WebUI工具——它不只是一段代码,而是一个完整可交付的生产力解决方案。本文将带你从零开始,快速上手这款由科哥独立开发、持续维护的cv_resnet18_ocr-detection镜像,并深入理解它在真实工作流中能为你省下多少时间。 1. 为什么你需要这个OCR工具? 你是否也经历过这些时刻: * 扫描合同后想快速提取条款,却要反复截图、粘贴、校对; * 整理上百张发票照片,手动录入金额和日期,一坐就是半天; * 做竞品分析时,看到对手宣传页上的关键数据,却没法一键复制; * 学生党整理课堂PPT截图,逐张打字转文字,效率低到怀疑人生。 市面上的OCR服务,要么按次收费、要么限制调用量、要么需要注册企业资质、要么部署复杂得像在搭火箭。而今天介绍的这款工具,没有试用期、没有水印、不联网上传、不依赖云服务、不强制绑定账号——它就安静地运行在你的服务器或本地机器上,点开浏览器就能用。 更关键的是:它不是简单套壳,而是基于ResNet18主干网络+优化检测头的轻量级OC

By Ne0inhk
深度评测 GLM-5:AtomGit 首发模型的代码生成实战体验

深度评测 GLM-5:AtomGit 首发模型的代码生成实战体验

文章目录 * 🔍 深度评测 GLM-5:AtomGit 首发模型的代码生成实战体验 * 📋 前言 * 🏗️ 一、模型参数配置 * ⚡ 二、核心能力实测:Flask API 完整服务生成 * 2.1 测试任务 * 2.2 模型输出分析 * 2.3 项目结构输出 * 2.4 核心代码质量评测 * 配置文件 (config.py) * 用户模型 (models/user.py) * 错误处理 (utils/errors.py) * 数据验证 (utils/validators.py) * 📊 三、性能表现评估 * 💡 四、使用技巧与建议 * 4.1 提示词优化技巧 * 4.2 参数调优建议

By Ne0inhk
GitHub Copilot 调用第三方模型API

GitHub Copilot 调用第三方模型API

一、说明 OAI Compatible Provider for Copilot 的作用是:把 Copilot/Copilot Chat 发出的“类似 OpenAI API 的请求”,转发到指定的 OpenAI-Compatible 服务端(例如 ModelScope 推理网关、自建的兼容网关等)。 ⚠️ Warning 登录 GitHub Copilot 的账号一定要是非组织方式开通 pro 会员的,不然无法管理模型。 推荐直接用免费的free账号登录即可。 二、插件安装 在 VS Code 扩展市场安装并启用: * GitHub Copilot * GitHub Copilot Chat * OAI Compatible Provider for Copilot (johnny-zhao.

By Ne0inhk
DeerFlow 2.0开源

DeerFlow 2.0开源

目录 从研究工具到超级智能体 什么是 DeerFlow? 核心特性 技能系统 子智能体 沙盒与文件系统 上下文工程 长期记忆 技术架构 快速开始 推荐模型 应用场景 项目现状 总结 2026 年 2 月 28 日,一款来自字节跳动的开源项目登顶 GitHub Trending 榜首。 它叫 DeerFlow,一个超级智能体架构,短时间就拿了 2.2 万 Star。 说实话,刚看到这个项目的时候,我还有些疑惑——又一个 AI Agent 框架?但深入了解后,我发现这玩意儿确实不一样。 从研究工具到超级智能体 DeerFlow 的故事挺有意思。 最开始,它只是个深度研究框架。但开发者们把它用出了各种花样:构建数据管道、

By Ne0inhk