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

LeetCode——2683. 相邻值的按位异或

通过万岁!!!

  • 题目:给你一个长度为n的数组derived,然后让你看下他能不能通过另外一个数组异或而来。规则是derived[i] = original[i] 异或 original[i+1],如果i位于最后i=n-1,则derived[i] = original[i] 异或 original[0]。然后数组只有0和1两个值。
  • 思路:首先是要知道异或什么意思。异或就是相同为0,不同为1。我们看下derived[i] = original[i] 异或 original[i+1]这个公式,其中derived[i]我们是知道的,这里先看i=0时,先假设derived[0]=0,则original[0]和original[1]相同,如果original[0]=0,那么original[1]=0。然后我们继续模拟derived[1],假设derived[1]=0,那么original[2]=0;如果derived[1]=1,那么original[2]只能等于1,因为他要与original[1]不能相同。所以我们可以看到,只要original[0]确定以后,后面的就都出来了。而且我们还能发现original[0]等于0或者等于1,都无所谓。上面的了解完了,我们就可以推导到original[n-1]了。注意了,我们找到了original[n-1],但是我们只满足了derived[n-2],因为derived[n-1]=original[n-1]异或original[0],而original[0]是我们假设的一个值。所以我们最后的结过只需要看original[n-1]异或original[0]是不是等于derived[n-1]就好了。
  • 技巧:数组、异或、位运算

java代码

class Solution {public boolean doesValidArrayExist(int[] derived) {// 异或,相同为0,不同为1int len = derived.length;int[] temp = new int[len];// temp[0] = 0for (int i = 1; i < len; i++) {if (derived[i - 1] == 0) {temp[i] = temp[i - 1];} else {// x & 1 = x % 2temp[i] = (temp[i - 1] + 1) & 1;}}return (temp[len - 1] ^ temp[0]) == derived[len - 1];}
}
  • 总结:关键就是我们需要发现,其实这个original有两个,一个是以0开头的,第二个是以1开头的。这样我们就可以随便假设original[0]了。
http://www.xdnf.cn/news/17179.html

相关文章:

  • Spring Boot 与 Ollama 集成部署私有LLM服务 的完整避坑指南,涵盖 环境配置、模型管理、性能优化 和 安全加固
  • 【Electron】electron-vite中基于electron-builder与electron-updater实现程序远程自动更新,附源码
  • 对于包含大量文件的程序的便捷makefile操作
  • 建筑地产安全监控误报率↓77%:陌讯多模态融合算法实战解析
  • 布控球是什么?布控球有什么作用?什么场景下会使用到布控球设备?一篇短文带你了解
  • Windows驱动更新下载工具,电脑硬件设备驱动程序自动安装下载更新,可备份还原!键盘鼠标声卡网卡显卡主板硬盘驱动都可以下载,免费使用的神器!
  • 【软考中级网络工程师】2021年下半年上午真题及答案解析
  • 【科研绘图系列】R语言绘制误差棒图
  • C++继承关系中,深度解析类内存布局与多态的实现
  • PDF 文本提取技术深度对比:基于规则与基于模型的两种实现
  • 【乐企板式文件生成工程】关于乐企板式文件(PDF/OFD/XML)生成工程介绍
  • 结合opencv解释图像处理中的结构元素(Structuring Element)
  • C语言的结构体与联合体
  • 通信算法之301:IP核之单双端口 RAM和FIFO 读写
  • 【设计模式】代理模式
  • 【HUST】计算机|大学计算机基础内容(纯科普向)+数据结构数组、树、队列【旧文搬运】
  • Mac上pnpm的安装与使用
  • Java技术栈/面试题合集(12)-Maven篇
  • 使用maven-shade-plugin解决es跨版本冲突
  • ApplicationContext的实现类有哪些?
  • JSqlParser学习笔记 快速使用JSqlParser
  • C++临时对象:来源与性能优化之道
  • mysql 数据库系统坏了,物理拷贝出数据怎么读取
  • 【机器学习】(算法优化一)集成学习之:装袋算法(Bagging):装袋决策树、随机森林、极端随机树
  • Day31:文件的规范拆分与写法
  • XXE漏洞原理及利用
  • QT:交叉编译mysql驱动库
  • 【测试】⽤例篇
  • 【Pytorch✨】LSTM04 l理解长期记忆和短期记忆
  • springboot博客实战笔记01