剑指offer面试题40 数组中只出现一次的数字
考察点
异或运算,与运算
知识点
题目
分析
本题目要求数组中只出现一次的俩个数字,并且要求O(1)时间复杂度和空间复杂度。试想一下如果只有一个数字出现一次,那么针对全部元素做异或运算就可以了,因为相同元素异或为0。现在有俩个数字出现了一次,那么我们其实可以依据数字位的一些特性,我们可以首先异或全部元素,这个值肯定是这俩个只出现一次的数字的异或值,既然值不相同那么肯定从右起有一位元素是1,这是这俩个数字不相同的原因之一,我们可以再找出来到底是第几位元素,然后再次遍历数组,针对所有元素判断该位是否是1分别做异或运算即可
public class Forty{public static void main(String[] args) {int[] arr = {2,4,3,6,3,2,5,5};getDifferentNum(arr);}public static void getDifferentNum(int[] arr) {int num = 0;for (int i = 0;i<arr.length;i++) {num = num ^ arr[i];}//找到右起第一位不是0的int cnt = 0;int oneNum = 1;while(oneNum > 0) {if((num & oneNum) == 0) {cnt++;} else {break;}oneNum = oneNum << 1;}int numA = 0;int numB = 0;for(int i = 0;i<arr.length;i++) {oneNum = 1;if(((oneNum << cnt) & arr[i]) == 0) {numA = numA ^ arr[i];} else {numB = numB ^ arr[i];}}System.out.println(numA);System.out.println(numB);}
}
相关文章:
剑指offer面试题40 数组中只出现一次的数字
考察点 异或运算,与运算知识点 题目 分析 本题目要求数组中只出现一次的俩个数字,并且要求O(1)时间复杂度和空间复杂度。试想一下如果只有一个数字出现一次,那么针对全部元素做异或运算就可以了,因为相同元素异或为0。现在有俩…...
gitLab server version 13.12.1 is not supported
拉代码的时候,报的这个错,实际上就是因为gitLab 版本太低了,这里不准备升级版本,打算继续使用账号密码来拉取代码 在idea已经安装的插件中,去掉gitlab插件,如下: 之后再拉取代码,就…...
如何在 iPhone 上使用蓝牙鼠标
iPhone 不支持使用传统的鼠标指针。 然而,有一个名为“AssistiveTouch”的功能可以在屏幕上模拟类似光标的指针。 启用它的方法如下: 打开 iPhone 上的“设置”应用程序。转到“辅助功能”。向下滚动并选择“触摸”。点击“辅助触控”。切换开关以打开 …...
matlab simulink 电力系统同步发电机励磁系统的建模与仿真
1、内容简介 略 77-可以交流、咨询、答疑 电力系统同步发电机励磁系统的建模与仿真 建立MATLAB的同步发电机励磁调节系统仿真模型,最后建立了以PID和PSS为励磁控制方式的同步发电机励磁调节系统数学模型,在Simulink环境下进行了仿真,收到…...
AI新工具(20240320) AI创作一首属于自己的音乐; 轻松制作具有透明背景的高质量图像
✨ 1: Suno AI创作一首属于自己的音乐 Suno是一个革命性的人工智能平台,专注于音乐创作。在通俗的语言中,Suno允许用户仅通过提供歌词,自动为其创作旋律和演唱,产生完整的音乐作品。使用Suno的过程简单直观,不需要用…...
IT服务ITIL4 认证:助力企业数字化转型的必杀技!
随着科技的不断展和企业竞争的加剧,如何实现数字化转型成为了当今企业面临的重要课题。而学习ITIL4认证,尤其是ITIL4中级,将为企业的数字化转型提供有力的支持和帮助。 ITIL4认证 ITIL(Information Technology Infrastructure Li…...
微软聘请了谷歌DeepMind的联合创始人
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
JavaMySQL高级一(下)
目录 1.常用函数 1.字符串函数 2.时间日期函数 3.聚合函数 4.数学函数 2.分布查询 3.子查询基础 1.简单子查询 1.常用函数 在程序开发过程中,除了简单的数据查询,还有基于已数据进行数据的统计分析计算等需求。因此,在SQL中将一…...
HCIA复习
上面的文件里有思维导图哦~ 一、情景再现:ISP网络为学校提供了DNS服务,所以,DNS服务器驻留在ISP网络内,而不再学校网络内。DHCP服务器运行在学校网络的路由器上。 小明拿了一台电脑,通过网线,接入到校园网…...
5G里面NR,gNB,en-gNB,ng-eNB是什么意思
不得不提一个国际组织,叫国际电信联盟(ITU, International Telecommunication Union),简称国际电联。我们先看看国际电联的自我介绍: 国际电信联盟 『国际电联 (国际电信联盟) 是主管信息通信技术事务(ICT)的联合国机…...
android 网络检测简单方法
如果连接的WiFi没有网络,无法通过简单的网络状态检查来判断其可用性。在这种情况下,你可以尝试使用以下方法来检测当前连接的WiFi是否可用: Ping测试:尝试通过向一个已知的可靠服务器发送Ping请求来检测连接的WiFi是否可用。如果…...
列表(list)篇(二)
文章目录 2.10 insert()函数2.11 list()函数2.12 pop() 函数2.13 remove()函数2.14 reverse()函数2.15 sort()函数2.16 sorted()函数2.17 sum()函数 2.10 insert()函数 在Python中,list.insert()是一个列表方法,用于在指定索引位置插入一个元素。这个方…...
Python的反射机制
本篇文章讨论Python中非常有趣且强大的概念——反射(Reflection)。想象一下,你正在编写一段代码,并希望这段代码能够具备自我认知和动态调整的能力。就好比一面镜子,能反映出它自身的属性和行为。在编程领域࿰…...
Python数学建模-2.9Matplotlib库
Matplotlib库是Python中一个非常流行的绘图库,它提供了大量的绘图工具,可以生成各种类型的静态、动态、交互式的图表。Matplotlib的设计初衷是为了与NumPy配合使用,从而提供一个强大的数学绘图工具。 1.Matplotlib的主要特点 丰富的图表类型…...
【MySQL】数据库的基础概念
👦个人主页:Weraphael ✍🏻作者简介:目前学习计网、mysql和算法 ✈️专栏:MySQL学习 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你有帮助的话 欢迎 评论💬…...
Linux:离线安装 jdk-8(配置Java环境)
Linux:离线安装 jdk-8(配置Java环境) 1、jdk简介2、检查已安装的Java版本,并卸载3、准备安装包4、解压安装包、进行安装5、设置环境变量(全局/个人) 💖The Begin💖点点关注,收藏不迷路…...
【DP】第十三届蓝桥杯省赛C++ B组《李白打酒加强版》(C++)
【题目描述】 话说大诗人李白,一生好饮。 幸好他从不开车。 一天,他提着酒壶,从家里出来,酒壶中有酒 2 斗。 他边走边唱: 无事街上走,提壶去打酒。 逢店加一倍,遇花喝一斗。 这一路上&am…...
数据结构试卷第九套
1.时间复杂度 2.树,森林,二叉树的转换 2.1树转二叉树 给所有的兄弟节点之间加一条连线;去线,只保留当前根节点与第一个叶子节点的连线,删除它与其他节点之间的连线;然后根据左孩子右兄弟进行调整…...
【Linux第三课-基础开发工具的使用】yum、vim、gcc/g++编译器、gdb、Make/Makefile编写、进度条程序、git命令行简单操作
目录 yum - 软件包管理器快速认识yum快速使用yumyum搜索yum安装yum卸载 yum的周边 - yum的整个生态问题 vim快速介绍vimvim的模式命令模式插入模式低行模式 常见模式 -- 命令、低行命令模式 -- 光标的移动命令模式 -- 复制粘贴、剪贴、删除命令模式 -- 小写/大写替换模式命令模…...
Redis:ClassCastException【bug】
Redis:ClassCastException【bug】 前言版权Redis:ClassCastException【bug】错误产生相关资源控制器:UserController("/user")配置:RedisConfiguration实体类:User数据表:User 解决 最后 前言 2…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...
GitHub 趋势日报 (2025年06月08日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...
Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...
基于Java+MySQL实现(GUI)客户管理系统
客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息,对客户进行统一管理,可以把所有客户信息录入系统,进行维护和统计功能。可通过文件的方式保存相关录入数据,对…...
解读《网络安全法》最新修订,把握网络安全新趋势
《网络安全法》自2017年施行以来,在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂,网络攻击、数据泄露等事件频发,现行法律已难以完全适应新的风险挑战。 2025年3月28日,国家网信办会同相关部门起草了《网络安全…...
MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…...
