当前位置: 首页 > news >正文

Java经典面试题(异或运算)

不爱生姜不吃醋⭐️⭐️⭐️

🌻如果本文有什么错误的话欢迎在评论区中指正哦💗
🌻看完之后觉得不错的话麻烦动动小手点个赞赞吧👍
🌻与其明天开始,不如现在行动!💪
🌻大家的支持就是我最大的动力!冲啊!🌹🌹🌹

文章目录

  • 🌴面试题
  • 🌴分析
  • 🌴代码编写
    • 第一问
    • 第二问
  • 🌴总结


🌴面试题

(1)在一个数组中,有一个数出现了奇数次,其余数都出现了偶数次,求出这个数
(2)如果数组中有两个数出现了奇数次,求这两个数


🌴分析

这是一道经典的关于位运算的面试题,使用异或^来解题。
异或相当于是不进位的二进制加法,其相关运算:

1 ^ 1 = 0
1 ^ 0 = 1
0 ^ 0 = 0

除此之外,异或运算的两个性质:交换律和结合律

a ^ b = b ^ a
a ^ b ^ c = a ^ c ^ b

了解相关概念之后,对于面试题的第一问:

把数组中的所有数字异或运算,相同的两个数字异或之后会等于0,那么再与剩余的奇数个的数字异或就会等于我们要的这个数字

对于第二问,我们分成三部分来解决:

假如数组中奇数个的数字分别是ab,那么按照第一问的方法,异或数组中的所有数字,最后的得到的结果就是a^b,用num1来表示

之后我们求出num1的二进制中只保留最右边的1的数,用num2来表示(例:num1=1010,那么num2=0010,下面的分析也是以这两个数来说明),让num2来异或所有在二进制数中第二位不等于1的数(例:x=0010,y=1100,那么就要用num2异或y)最终会得到a和b这俩个数其中的一个

假设我们得到了a,那么只需要用a异或num1就会得到b

多说无益,那我们就开始编写代码吧!

🌴代码编写

第一问

public class Test2 {public static void main(String[] args) {//定义数组,其中2出现了三次,其余数字都出现了偶数次int[] arr = {1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 5, 5};int num=0;for (int i : arr) {num ^= i;}System.out.println(num);}
}

运行代码之后我们得到数字2

第二问

public class Test {public static void main(String[] args) {//定义数组,其中2出现了三次,5出现了一次,其余数字都出现了偶数次int[] arr = {1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 5};int num1 = 0;for (int i : arr) {num1 ^= i;}int rightOne = num1 & (~num1 + 1);int num2 = 0;for (int i : arr) {if ((rightOne & i) == 0) {num2 ^= i;}}int a = num2;int b = a ^ num1;System.out.println(a + "," + b);}
}

运行代码之后我们得到数字2,5


🌴总结

文章中代码的编写使用的都是Java基础知识,其中关于异或的运算要多加练习熟能生巧。
本文中若是有出现的错误请在评论区或者私信指出,我再进行改正优化,如果文章对你有所帮助,请给博主一个宝贵的三连,感谢大家😘!!!


相关文章:

Java经典面试题(异或运算)

不爱生姜不吃醋⭐️⭐️⭐️ 🌻如果本文有什么错误的话欢迎在评论区中指正哦💗 🌻看完之后觉得不错的话麻烦动动小手点个赞赞吧👍 🌻与其明天开始,不如现在行动!💪 🌻大家…...

No primary or single unique constructor found for interface java.util.List

1.问题描述 前端 请求的参数 是 query形式, 参数在url中 报错信息: java.lang.IllegalStateException: No primary or single unique constructor found for interface java.util.List2.解决办法 controller中的 请求方法 参数 加上 RequestParam...

C#关于WebService中File.Exists()处理远程路径的异常记录

目录 前言方案一打开网站对应的程序池的高级设置按下图步骤设置凭据重启网站若方案一未能解决,请继续尝试方案二👇 方案二从控制面板进入到 凭据管理器为windows凭据添加凭据点击**Windows凭据**,并点击**添加Windows凭据**键入远程路径的地址…...

JavaWeb_LeadNews_Day10-Xxljob, Redis实现定时热文章

JavaWeb_LeadNews_Day10-Xxljob, Redis实现定时热文章 xxl-job概述windows部署调度中心docker部署调度中心 xxl-job入门案例xxl-job分片广播热点文章定时计算思路分析具体实现热文章计算定时计算 查询文章接口改造来源Gitee xxl-job概述 windows部署调度中心 运行 xxl-job\do…...

【WebRTC---源码篇】(二:二)视频源VideoSourceBase

作用 这个类继承自VideoSourceInterface<webrtc::VideoFrame>模板类,并且可以处理webrtc::VideoFrame class VideoSourceBase : public VideoSourceInterface<webrtc::VideoFrame> 重要成员变量 struct SinkPair {SinkPair(VideoSinkInterface<webrtc::Vid…...

Linux_8_磁盘存储和文件系统

1 磁盘结构 1.1 设备文件 一切皆文件: open(),read(),write(),close() 设备文件:关联至一个设备驱动程序&#xff0c;进而能够跟与之对应硬件设备进行通信 设备号码: ​ 主设备号 major number,标识设备类型​ 次设备号 minor number,标识同一类型下的不同设备 设备类型:…...

VS + QT 封装带UI界面的DLL

一、创建编译DLL的项目 1.新建Qt Class Liabrary 2.新建项目&#xff0c;选择Qt Widgets Class 3.新建C类&#xff0c;可以在此类里面写算法函数用于调用。 4.下面是添加完Qt窗体类和C类之后的项目截图 5.修改头文件并编译 将uidemo_global.h中的ifdef内容复制到dialog.h上…...

逆向工程-架构真题(二十)

结构化程序设计采用自顶向下、逐步求精及模块化程序设计方法&#xff0c;通过&#xff08;&#xff09;三种基本控制结构可以构造出任何单入口单出口程序。 顺序、选择和嵌套顺序、分支和循环分支、并发和循环跳转、选择和并发 答案&#xff1a;B 解析&#xff1a; 结构化设…...

Zookeeper 入门

第 1 章 Zookeeper 入门 1.1概述 Zookeeper从设计模式角度来理解&#xff1a;是一个基于观察者模式设计的分布式服务管理框架&#xff0c;它负责存储和管理大家都关心的数据&#xff0c;然后接受观察者的注册&#xff0c;一旦这些数据的状态发生变化&#xff0c;Zookeeper就将…...

记录--前端使用a链接下载内容增加loading效果

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 问题描述&#xff1a;最近工作中出现一个需求&#xff0c;纯前端下载 Excel 数据&#xff0c;并且有的下载内容很多&#xff0c;这时需要给下载增加一个 loading 效果。 代码如下&#xff1a; // util…...

如何获取用户的ip地址

用户的 IP 地址可能会被隐藏或者修改&#xff0c;例如使用代理服务器、VPN 等工具&#xff0c;这样就无法准确获取用户的真实 IP 地址。 除了以上特殊情况&#xff0c;一般情况下 用户访问可能会经过一下链路 &#xff1a; 前端—>nginx—>网关—>服务 。 一般情况下后…...

单片机-控制按键点亮LED灯

1、按键电路图 定义四个按键引脚 1、按键按下 为 输入为低电平 2、按键不按下 IO有上拉电阻&#xff0c;为高电平 // 定义 按键的 管教 sbit KEY1 P3^1; sbit KEY2 P3^0; sbit KEY3 P3^2; sbit KEY4 P3^3; 2、LED灯电路图 LED 输出高电平为亮 // 定义LED灯 管教 sbit LED1…...

微信小程序新版隐私协议弹窗实现最新版

1. 微信小程序又双叒叕更新了 2023.08.22更新&#xff1a; 以下指南中涉及的 getPrivacySetting、onNeedPrivacyAuthorization、requirePrivacyAuthorize 等接口目前可以正常接入调试。调试说明&#xff1a; 在 2023年9月15号之前&#xff0c;在 app.json 中配置 __usePriva…...

GO语言圣经 第五章习题

练习5.1 修改findlinks代码中遍历n.FirstChild链表的部分&#xff0c;将循环调用visit&#xff0c;改成递归调用。 func visit(links []string, n *html.Node) []string {if n nil {return links}if n.Type html.ElementNode && n.Data "a" {for _, a : r…...

用kotlin 开发一个简单的多页面跳转

本文介绍一个简单的安卓应用的页面跳转例子&#xff0c;用的是kotlin。 运行时主页面是一个hello 和Jump 按钮&#xff0c;你按一下jump 按钮就转到 从页面&#xff0c;只是标识从页面。 开始建立一个简单工程&#xff0c;名为hello&#xff0c; 选择的是Empty views Activit…...

记录我的tensorrt 部署yolov8

系统 &#xff1a;ubuntu 18.04 代码 &#xff1a;GitHub - noahmr/yolov5-tensorrt: Real-time object detection with YOLOv5 and TensorRT conda 环境 &#xff1a; GitHub - noahmr/yolov5-tensorrt: Real-time object detection with YOLOv5 and TensorRT cuda : 11.8 …...

什么是用户界面? 优漫动游

什么是用户界面&#xff1f; 用户界面(UI&#xff0c;UserInterface)也称人机界面&#xff0c;是人机交互、操作逻辑和界面表现的整体设计。每一种设计都有其对应的职业角色&#xff0c;其中&#xff0c;人机交互的设计人员叫做用户研究工程师&#xff0c;操作逻辑设计人员叫…...

基于 Docker 的 MySQL 主从复制搭建(Mac M1版本)

系统&#xff1a;Macbook M1 镜像版本&#xff1a;mysql:5.7 如果是要查 slave连接不上 master的问题&#xff0c;可以直接跳到文章末尾踩坑处 准备工作 拉取镜像 docker pull mysql:5.7本地数据卷挂载 因为mysql不挂载的话&#xff0c;重启丢失数据&#xff0c;所以在本地创…...

【Locomotor运动模块】瞬移

文章目录 一、原理二、两种类型1、Instant(立刻)2、Dash&#xff08;猛冲&#xff09; 三、瞬移区域、瞬移点1、瞬移区域2、瞬移点 一、原理 抛物线指针选择好目标位置&#xff0c;然后告诉瞬移预设体&#xff1a;你想法把游戏区域弄到目标位置来 解释&#xff1a;抛物线指针选…...

【负载均衡】常见的负载均衡策略有哪些?

文章目录 前言负载均衡分类常见负载均衡策略小结 前言 负载均衡策略是实现负载均衡器的关键&#xff0c;而负载均衡器又是分布式系统中不可或缺的重要组件。使用它有助于提高系统的整体性能、可用性、可靠性和安全性&#xff0c;同时支持系统的扩展和故障容忍性。对于处理大量…...

5分钟解锁全皮肤:R3nzSkin国服特供版完全指南

5分钟解锁全皮肤&#xff1a;R3nzSkin国服特供版完全指南 【免费下载链接】R3nzSkin-For-China-Server Skin changer for League of Legends (LOL) 项目地址: https://gitcode.com/gh_mirrors/r3/R3nzSkin-For-China-Server 你是否曾为心仪的限定皮肤望而却步&#xff1…...

多指灵巧手技术解析与应用实践

1. 多指灵巧手技术概述 多指灵巧手作为机器人操作系统的核心执行部件&#xff0c;其设计理念直接决定了机器人在非结构化环境中的操作能力。这类机械手通过模拟人类手指的解剖学结构和运动方式&#xff0c;实现了从简单抓取到复杂精细操作的功能跨越。与传统的二指夹持器相比&a…...

AI应用成本工程:让你的LLM系统降本30%-70%的工程实践

成本问题是AI应用规模化的最大障碍 一个运行良好的AI原型&#xff0c;扩展到生产规模时往往面临一个令人震惊的现实&#xff1a;成本。举个典型案例&#xff1a;一个内部知识库问答系统&#xff0c;在100用户规模测试时每月花费约500元&#xff0c;感觉完全可接受。当推广到500…...

网盘直链解析工具完整指南:告别下载限速,实现高速下载

网盘直链解析工具完整指南&#xff1a;告别下载限速&#xff0c;实现高速下载 【免费下载链接】netdisk-fast-download 聚合多种主流网盘的直链解析下载服务, 一键解析下载&#xff0c;已支持夸克网盘/uc网盘/蓝奏云/蓝奏优享/小飞机盘/123云盘等. 支持文件夹分享解析. 体验地址…...

【紧急预警】2024Q3起医保DRG/DIP结算将强制接入AI行为审计日志!医疗机构AI Agent日志治理4级合规改造倒计时

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;AI Agent医疗行业应用 AI Agent正以前所未有的深度融入医疗健康全链条&#xff0c;从辅助诊断、个性化治疗规划到慢病管理与药物研发&#xff0c;展现出强推理、多工具协同与持续学习的核心能力。不同于传统静…...

手动生成可信本地CA:OpenSSL构建X.509证书链实战

1. 为什么你真正需要的不是“买证书”&#xff0c;而是搞懂CA签发逻辑很多人一听到“SSL/TLS证书”&#xff0c;第一反应是去阿里云、腾讯云点几下鼠标&#xff0c;花几十块钱买一张带绿色锁头的域名证书——这确实快&#xff0c;但代价是&#xff1a;你永远不知道那张证书里到…...

集合卡尔曼滤波结合机器学习代理模型的长期精度理论分析与实践

1. 项目概述&#xff1a;当集合卡尔曼滤波遇上机器学习代理模型在气象预报、海洋环流模拟乃至地质勘探这些领域&#xff0c;我们常常面临一个核心挑战&#xff1a;如何从充满噪声的、不完整的观测数据中&#xff0c;准确地推断出复杂动力系统的真实状态&#xff1f;这就像是在一…...

B物理反常的全局拟合:有效场论与机器学习解析新物理信号

1. 项目概述&#xff1a;当B介子衰变“不听话”时&#xff0c;我们如何用数学语言寻找新物理&#xff1f;在粒子物理的精密前沿&#xff0c;标准模型&#xff08;Standard Model, SM&#xff09;一直是我们理解微观世界最成功的理论框架。然而&#xff0c;物理学家们从未停止过…...

基于密度距离度量构建高质量科学仿真训练集:从原理到工程实践

1. 项目概述&#xff1a;从仿真数据到高质量训练集的桥梁在计算物理、流体力学或者天体物理模拟这类科学计算项目中&#xff0c;我们常常会生成海量的仿真数据。这些数据&#xff0c;比如一个随时间演化的等离子体密度场&#xff0c;其本身是复杂且高维的。直接把这些“原始矿石…...

基于物理的机器学习框架ϕML:高效精准预测材料断裂行为

1. 项目概述&#xff1a;当物理定律遇见神经网络在工程结构的设计与安全评估中&#xff0c;材料的断裂行为预测一直是个核心且棘手的难题。无论是飞机机翼的疲劳裂纹&#xff0c;还是桥梁承重构件的突然失效&#xff0c;精准的预测都能直接转化为安全边际和经济效益。传统上&am…...