当前位置: 首页 > 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;同时支持系统的扩展和故障容忍性。对于处理大量…...

AI辅助架构设计:让快马智能生成符合最佳实践的SpringBoot项目骨架

今天想和大家聊聊如何用AI工具快速搭建一个符合现代最佳实践的SpringBoot项目骨架。作为一个经常需要从零开始搭建项目的开发者&#xff0c;我发现传统的手动创建项目方式效率太低&#xff0c;而且容易遗漏一些关键配置。最近尝试了InsCode(快马)平台的AI辅助功能&#xff0c;发…...

造相Z-Image文生图模型v2:3步搭建你的专属AI画师

造相Z-Image文生图模型v2&#xff1a;3步搭建你的专属AI画师 1. 为什么选择Z-Image v2作为你的AI画师 在众多文生图模型中&#xff0c;造相Z-Image v2以其独特的优势脱颖而出。作为阿里通义万相团队开源的高性能模型&#xff0c;它原生支持768768及以上分辨率的高清图像生成&…...

3步解锁显卡潜力:OptiScaler跨平台开源上采样技术配置攻略

3步解锁显卡潜力&#xff1a;OptiScaler跨平台开源上采样技术配置攻略 【免费下载链接】OptiScaler OptiScaler bridges upscaling/frame gen across GPUs. Supports DLSS2/XeSS/FSR2 inputs, replaces native upscalers, enables FSR3 FG on non-FG titles. Supports Nukem mo…...

告别GIL幻觉:基于subinterpreter+shared_memory的生产级无锁Pipeline(附GitHub星标1.2k的perf-validated模板库)

第一章&#xff1a;Python无锁GIL环境下的并发模型性能调优指南Python 的全局解释器锁&#xff08;GIL&#xff09;长期被视为 CPU 密集型并发的瓶颈&#xff0c;但现代 CPython 3.12 已实验性支持无 GIL 构建&#xff08;通过 --without-pygil 配置选项&#xff09;&#xff0…...

AVR机器人固件基座:负熵架构与确定性调度

1. 项目概述“Negentropic Base”是一个面向AVR微控制器平台的嵌入式固件基础框架&#xff0c;专为移动机器人&#xff08;尤其是轮式探测车、自主巡线小车、轻量级自主导航平台&#xff09;设计。其名称中的“Negentropic”&#xff08;负熵&#xff09;并非玄学术语&#xff…...

Origin绘图进阶:如何在现有图形上叠加散点图与等高线(附MATLAB对比)

Origin数据可视化进阶&#xff1a;多层图表叠加与等高线绘制实战 科研图表的美观性与信息密度往往决定了研究成果的呈现效果。作为一款专业的数据分析与可视化工具&#xff0c;Origin在复杂图表叠加方面展现出独特优势&#xff0c;尤其适合需要同时展示散点分布与等高线趋势的科…...

SEKA与AdaSEKA:破解大模型注意力引导难题的新方案

【导语&#xff1a;在自然语言处理领域&#xff0c;让大模型重点关注提示词某句话存在挑战。爱丁堡大学等团队提出SEKA及其自适应变体AdaSEKA&#xff0c;解决了现有方法的延迟和显存瓶颈问题&#xff0c;为大语言模型发展带来新思路。】SEKA&#xff1a;改写Key向量引导注意力…...

Kandinsky-5.0-I2V-Lite-5s Web工具深度解析:非聊天页,专注图生视频的生产级界面

Kandinsky-5.0-I2V-Lite-5s Web工具深度解析&#xff1a;非聊天页&#xff0c;专注图生视频的生产级界面 1. 工具概述 Kandinsky-5.0-I2V-Lite-5s是一款专为图生视频任务设计的轻量级AI模型&#xff0c;它通过简洁直观的Web界面&#xff0c;让用户能够快速将静态图片转化为动…...

Ubuntu系统优化下的LiuJuan20260223Zimage高性能部署

Ubuntu系统优化下的LiuJuan20260223Zimage高性能部署 本文基于Ubuntu 22.04 LTS系统测试&#xff0c;适用于NVIDIA GPU环境 1. 环境准备与系统优化 在开始部署LiuJuan20260223Zimage之前&#xff0c;我们先对Ubuntu系统进行一些基础优化&#xff0c;这些调整能让后续的模型运行…...

零基础玩转通义千问2.5:手把手教你用vLLM+Open WebUI一键部署

零基础玩转通义千问2.5&#xff1a;手把手教你用vLLMOpen WebUI一键部署 1. 通义千问2.5-7B-Instruct简介 1.1 模型特点概述 通义千问2.5-7B-Instruct是阿里云2024年9月发布的70亿参数指令微调模型&#xff0c;定位为"中等体量、全能型、可商用"的开源大语言模型。…...