【数据结构与算法精炼】LeetCode No.136 : Single Number,由一道算法题想到的关于XOR运算的使用

SpringBoot+Vue+Mysql社区医院信息平台(源码+文档) SpringBoot+Vue+Mysql学生宿舍信息管理系统 WEB端软件项目(源码+文档) 项目包含:①完整源码(后端+管理后台+用户前台);②数据库脚本文件;③万字论文文档;④开题报告;⑤答辩PPT;⑥项目运行视频教程。 项目架构: B/S 架构、MVC 分层设计 技术栈: Java、MySQL、SpringBoot、MyBatis-Plus、Token 权限校验、管理后台 Vue+ElementUI+ECharts、用户前台 Layui+jQuery、Maven 构建。 一、角色设计 学生用户: 注册登录、浏览宿舍信息、查询宿舍安排、在线报修、缴费查询、失物招领、桶装水预订、评论交流、收藏等。 商家用户: 注册登录、桶装水品牌与商品信息维护、预订订单查看与处理。 维修人员: 注册登录、查看待处理报修、接单维修、填写报修处理结果与进度反馈。 管理员: 学生管理、班级管理、宿舍信息管理、宿舍安排管理、报修处理管理、缴费信息管理、卫生检查与文明宿舍管理、失物招领管理、桶装水与商家管理、维修人员管理、公告资讯与轮播图管理等。 二、前台功能模块(学生端) 1. 首页展示:轮播图、宿舍公告、最新动态推荐、常用服务快速入口 2. 宿舍信息模块:宿舍列表、楼栋与房间条件筛选、宿舍详情查看、我的宿舍安排查询 3. 在线报修模块:在线提交宿舍设施报修申请、上传故障描述、查看报修进度与维修处理结果 4. 缴费模块:水电等缴费记录查询、缴费状态查看 5. 卫生检查与文明宿舍:宿舍卫生检查结果公示、文明宿舍展示 6. 失物招领模块:失物信息发布、招领信息发布、详情查看、评论互动 7. 桶装水预订:桶装水品牌与商品浏览、在线预订、我的预订记录查询 8. 假期留宿:假期留校申请提交、申请记录查询 9. 评论与收藏:信息评论、查看他人评论、评论回复互动、收藏感兴趣的内容 10. 个人中心... 立即下载

引言

数据结构与算法,是程序员的内功修炼。甚至有开发者还提出了程序=数据结构+算法。
少侠我之前参加校招的时候,也是凭借在手撕代码环节出色的算法解题思路获得面试官的称赞并击败众多竞争者最后拿到字节跳动等大厂的offer。
为了保持算法心经的日臻纯熟,我暗下决心,决定开始写互联网数据结构与算法相关的文章,希望能帮助各位读者在以后的手撕代码中游刃有余,对面试官进行360°的反击,让一同面试的同僚瞠目结舌,疯狂收割互联网大厂offer!
文章中虽然应用了夸张的修辞手法,但我们应该始终保持一颗谦逊的心。希望和大家怀着虚怀若谷的心态,共同学习进步。

问题描述

Given a non-empty array of integers, every element appears twice except for one. Find that single one.

Note:

Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?

Example 1:

Input: [2,2,1]
Output: 1

Example 2:

Input: [4,1,2,1,2]
Output: 4

问题分析

问题很明确,就是找到数组中的唯一一个只出现一次的数字。注意时间复杂度要求是O(n)且不能开辟额外的空间。
读到这里,请各位读者发散思维考虑该怎么解答……
在这里插入图片描述
少侠这里给出自己的思路:异或运算(XOR)。

那么什么是异或运算呢?

参加运算的两个数据,按二进制位进行“异或”运算 。 运算规则是:参加运算的两个对象,如果两个相应位为“异”(值不同),则该位结果为1,否则为0。

异或运算的几个规律

  • 两个相同的数异或结果为0,即X^X=0

  • 任何数与0相异或,保留原值 ,X ^ 00000000 = X。

  • 使特定位翻转找一个数,对应X要翻转的各位,该数的对应位为1,其余位为零,此数与X对应位异或即可。例:X=10101110,使X低4位翻转,用X ^0000 1111 = 1010 0001即可得到。

  • 将两数异或的结果与其中一数再进行异或,可以得到另一个数。

  • 一个数与另一个数异或两次是其本身

根据以上规律的前两个即可解决这道题,想想两个相同的数异或结果为0,所以采用异或运算的话,数组中所有相同的数异或后结果为0,此时再和唯一的那个只出现一次的数异或,返回该数,即是所求,思路是不是很简单呢?附源码:

class Solution {
    public int singleNumber(int[] nums) {
        int res=0;
        for(int i=0;i<nums.length;i++){
            res^=nums[i];
        }
        return res;
    }
}

小结

XOR运算只是本题的一个解答思路,此运算在很多场景下都有应用。掌握好逻辑运算、位运算对开发、面试都有益无害。

在这里插入图片描述

YOLOv8作物病害检测实战源码 这是一套基于YOLOv8n的农田病虫害目标检测系统,对叶片照片做目标检测,识别健康叶片、褐斑病、白粉病、锈病四类,并给出对应防治建议。全流程纯CPU可跑,配套交付完整Python源码、9章实战教程(md/html/pdf三种格式)、100张自造样本及YOLO标签、训练曲线与混淆矩阵截图、Tkinter界面和答辩PPT。 系统围绕五项功能展开:同一套推理逻辑覆盖图像、视频、摄像头三种来源;图形界面选文件即检测,画面叠彩色框标注病名与置信度,右侧面板同步给出症状与防治措施;检测记录自动写入CSV,统计页一键生成四类病害占比饼图;训练结束自动产出损失与精度曲线;内置防治建议文案库,检测命中即回填面板。 选型用YOLOv8n nano档,参数量约320万、权重约6.2MB,CPU单帧几十毫秒,小样本训练5到8分钟完成。数据由data_gen.py程序化绘制100张叶片图,固定随机种子,重跑分布一致,不依赖公开数据集。依赖全部锁版本,教程第7章整理了19条真实报错及排查方法,第8章给出换模型档、换PlantVillage数据集的迁移路径。 适合做计算机视觉方向课程设计或毕业设计的学生,也适合智慧农业方向想了解检测模型如何落进业务面板的学习者。不需要GPU,不需要系统学过目标检测,教程第3章会按需补齐原理。 使用时先pip install -r requirements.txt装好依赖,download_data.py下载预训练权重,data_gen.py生成样本后train.py训练,完成后用main.py infer批量检测或main.py gui启动界面。 立即下载

相关推荐

数据挖掘实战:决策树 + 聚类 + 关联规则,零 Key 离线可跑(Python 源码)

数据挖掘实战包。用 Python 标准库实现 CART 风格决策树、K-Means 聚类与 Apriori 关联规则,在虚构「星河便利店」会员表和购物篮上跑通分类、分群与购物篮分析,并给出准确率、轮廓系数、支持度/置信度/提升度。零第三方依赖、零 API Key 即可离线跑通。含 4 个样例、离线冒烟、中文 README(含「使用方法」)。均为作者原创可运行源码。MIT。作者 blog.csdn.net/mtl1994

XOR 链表 – 内存高效的双向链表

每个节点由三个主要组件组成:数据(该节点的有效负载)、指向序列上一个节点的指针和指向序列下一个节点的指针。每个节点由两个主要组件组成:数据(该节点的有效载荷)和序列中上一个和下一个节点的内存地址的异或。在上面的例子中,让我们以向后遍历的情况为例,即从右到左,看看如何使用存储在节点中的链接到达下一个节点。在上面的例子中,让我们以前向遍历(即从左到右)为例,看看如何使用存储在节点中的链接到达下一个节点。每个节点由两个主要组件组成:数据(该节点的有效负载)和指向列表中下一个节点的指针。

新华编程特战队 369

科技中介服务机构在技术供需对接中如何实现服务流程的自动化与标准化?.docx

科技中介服务机构在技术供需对接中如何实现服务流程的自动化与标准化?

数据结构:XOR链表--- 一个空间高效的双向链表

XOR链表— 一个空间高效的双向链表传统的双向链表,要求有两个地址阈,分别存储前一个和后一个节点的地址。这里我们提到的空间高效的双向链表,仅仅为每一个节点申请一个地址空间,这空间有效的双向链表叫做XOR链表。在XOR链表中不在存储一个确定的地址,而是对于每一个节点存储前一个地址和后一个地址的XOR值。看上面的双向链表,这是原始的双向链表,下面简单介绍其和XOR链表的不同。 传统的双向链表: No

机器笨猫 1311

产业园区如何高效对接企业技术需求与高校科研成果?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

国央企创新负责人如何快速掌握本地科技资源分布与匹配情况?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

【排序】堆排序详解 附代码

堆排序

少侠露飞的学习笔记 4万+

国央企创新负责人如何实现科技成果的精准识别与高效筛选?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

【算法】并查集(Union-Find)的理解和最佳实践 附代码

并查集(Union-Find)是用来解决动态连通性问题的。 文章目录1. 动态连通性1.1 概念1.2 应用场景1.3 问题建模参考阅读 1. 动态连通性 1.1 概念 首先用一张图来说明什么是动态连通性,如下图所示,有9个村落,有黑线连接表示两个村落是互通的。假设输入了一组整数对pairs,如(0,3)(1,2)等等,每对整数对代表这两个村落站点sites是连通的。随着sites的不断建设,整个...

少侠露飞的学习笔记 2万+

高校技术转移办公室人员如何系统化管理科技成果信息?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

科技中介服务机构如何构建标准化、模块化的智能服务工具?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

【数据结构与算法精炼】字符串解码讨论

前言 数据结构与算法,是程序员的内功修炼。甚至有开发者还提出了程序=数据结构+算法。 少侠我之前参加校招的时候,也是凭借在手撕代码环节出色的算法解题思路获得面试官的称赞并击败众多竞争者最后拿到字节跳动等大厂的offer。 为了保持算法心经的日臻纯熟,我暗下决心,决定开始写互联网数据结构与算法相关的文章,希望能帮助各位读者在以后的手撕代码中游刃有余,对面试官进行360°的反击,让一同面试的同僚瞠目结...

少侠露飞的学习笔记 658

fab-pm-optimizer-python-entry-py39-20261021-v1-1-0

fab-pm-optimizer-python-entry-py39-20261021-v1-1-0

【数据结构与算法精炼】LeetCode No.169 : Majority Element,由一道算法题想到的关于多数投票算法(Boyer-Moore Voting)的使用

引言 数据结构与算法,是程序员的内功修炼。甚至有开发者还提出了程序=数据结构+算法。 少侠我之前参加校招的时候,也是凭借在手撕代码环节出色的算法解题思路获得面试官的称赞并击败众多竞争者最后拿到字节跳动、搜狐等大厂的offer。 为了保持算法心经的日臻纯熟,我暗下决心,决定开始写互联网数据结构与算法相关的文章,希望能帮助各位读者在以后的手撕代码中游刃有余,对面试官进行360°的反击,让一同面试的同僚...

少侠露飞的学习笔记 449

PSIM-三相维也纳VIENNA整流器电压电流双闭环+中点电位平衡SVPWM控制仿真

内容概要:本文档详细介绍了一种基于PSIM软件实现的三相维也纳(VIENNA)整流器仿真模型,重点实现了电压电流双闭环控制与中点电位平衡的SVPWM调制策略。该仿真系统通过精确的控制算法有效提升了整流器的功率因数,降低了输入电流谐波含量,并解决了三电平拓扑中常见的直流侧中点电位偏移问题,具有较高的工程实用价值,适用于高效率、高功率密度的电力电子系统设计与科研验证。文档还整合了丰富的配套资源,涵盖多种电力电子变换器拓扑结构、先进控制算法及典型应用场景,形成了系统化的技术资料体系,有助于深入理解现代整流技术的核心原理与发展动态。; 适合人群:面向从事电力电子、电气工程、新能源变换系统等领域的科研人员、高校研究生以及具备一定仿真基础的工程技术人员。; 使用场景及目标:①深入研究三相VIENNA整流器的工作机理与控制特性;②掌握电压外环、电流内环双闭环控制结构的设计方法;③理解并实现SVPWM调制技术与中点电位平衡控制策略的协同作用;④开展相关控制算法的仿真验证、性能优化与实验对比,为高性能整流装置的研发提供理论支撑和技术原型。; 阅读建议:建议结合文中列出的其他仿真案例(如PWM整流器、LLC谐振变换器、DAB变换器等)进行横向对比学习,充分利用所提供的PSIM、MATLAB/Simulink等多平台仿真资源,重点关注控制逻辑与主电路的耦合关系,通过参数调试与波形分析深化对系统动态响应和稳态性能的理解,强化“理论—建模—仿真—优化”的闭环研究能力。

产业园区运营负责人如何利用数智工具提升园区企业的技术对接效率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

【数据结构与算法】腾讯面试官让我模拟快排的执行过程,背好的代码竟无用武之地

万万没想到,我快排的代码都背好了,他竟然让我模拟过程,谁曾想问的这么细

少侠露飞的学习笔记 307

Profinet从站开发初体验:用p-net开源库和树莓派快速搭建一个IO设备模拟器

本文详细介绍了如何使用p-net开源库和树莓派快速搭建Profinet从站IO设备模拟器。从开发环境准备、p-net源码编译到设备模拟器功能实现,提供了全流程实战指南,帮助开发者快速掌握工业通信协议开发技巧,适用于工业自动化领域的设备互联测试与验证。

weixin_30384217的博客 383
上一篇: 【敲开BAT的大门】系列:避免缓存击穿的利器之Bloom Filter
下一篇: 【数据结构与算法精炼】LeetCode No.169 : Majority Element,由一道算法题想到的关于多数投票算法(Boyer-Moore Voting)的使用
少侠露飞
博客等级 码龄9年 214粉丝 117原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值