news 2026/5/13 19:08:22

E.位运算-异或:异或消消乐入门(1720题+2433题+2683题)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
E.位运算-异或:异或消消乐入门(1720题+2433题+2683题)

题目链接:1720. 解码异或后的数组(简单)

算法原理:

解法:位运算-异或消消乐

1ms击败100.00%

时间复杂度O(N)

思路很简单,根据“异或消消乐”的原理:a^a=0

用ai表示原始中数组的第i个数⬇️

由于encoded[0]=a1^a2,因此此题中原始的a2=encoded[0]^first=a1^a2^a1=a2

类似的,我们可以递推推导出其余数

JAVA代码:

class Solution { //1720. 解码异或后的数组 public int[] decode(int[] encoded, int first) { //异或消消乐 int n=encoded.length; int[] ret=new int[n+1]; ret[0]=first; for(int i=1;i<n+1;i++) ret[i]=encoded[i-1]^ret[i-1]; return ret; } }

题目链接:2433. 找出前缀异或的原始数组(中等)

算法原理:

解法:位运算-异或消消乐

2ms击败66.25%

时间复杂度O(N)

观察题述中的规律,拿示例一举例⬇️

pref[0]=5,因此ret[0]=5

pref[1]=5^7=2,因此ret[1]=pref[0]^pref[1]=(5)^(5)^7=7

pref[2]=5^7^2=0,因此ret[2]=pref[1]^pref[2]==(5^7)^(5^7)^2=2

pref[3]=5^7^2^3=3,因此ret[3]=pref[2]^pref[3]=(5^7^2)^(5^7^2)^3=3

pref[4]=5^7^2^3^2=1,因此ret[4]=pref[3]^pref[4]=(5^7^2^3)^(5^7^2^3)^2=2

因此ret[i]=pref[i-1]^pref[i]

JAVA代码:

class Solution { //2433. 找出前缀异或的原始数组 public int[] findArray(int[] pref) { int n=pref.length; int[] ret=new int[n]; ret[0]=pref[0]; for(int i=1;i<n;i++) ret[i]=pref[i-1]^pref[i]; return ret; } }

题目链接:2683. 相邻值的按位异或(中等)

算法原理:

解法:脑筋急转弯+异或消消乐

2ms击败100.00%

时间复杂度O(N)

可能很多小伙伴都会去想怎么模拟这个过程,但其实根本没必要

我们观察示例1能够发现,如果这个原始数组真的存在,那么derived数组中所有值异或在一起的值为original[0]^original[1]^^original[1]^original[2]^original[2]^original[0]=0,如果不存在则必然结果不为0,因此我们仅需将derived数组中所以数异或在一起,判断最终结果是否为0即可

JAVA代码:

class Solution { //2683. 相邻值的按位异或 public boolean doesValidArrayExist(int[] derived) { int ret=0; for(int x:derived) ret^=x; return ret==0; } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/13 19:08:15

CAS和Atomic原子操作类

一、基本概念CAS是一种原子操作&#xff0c;用于实现无锁并发编程&#xff0c;是乐观锁的实现方式之一。它包含三个操作数&#xff1a;内存位置 V&#xff08;需要读写的变量&#xff09;期望值 A&#xff08;线程认为 V 当前应该有的值&#xff09;新值 B&#xff08;想要写入…

作者头像 李华
网站建设 2026/5/13 19:03:06

GraphSage的灵魂操作:在PyG里用NeighborLoader复现邻居采样全流程

GraphSage的灵魂操作&#xff1a;在PyG里用NeighborLoader复现邻居采样全流程 当面对社交网络、推荐系统或分子结构等图数据时&#xff0c;传统的全图训练方法往往遭遇显存瓶颈。GraphSage提出的邻居采样策略&#xff0c;如同为GNN训练装上了"内存调节阀"&#xff0c…

作者头像 李华
网站建设 2026/5/13 18:57:42

CTF SHOW WEB入门79

这是一道非常经典的 PHP 代码审计类 CTF 题目。该代码的核心在于文件包含漏洞 (LFI) 以及对特定关键词的黑名单绕过。 以下是详细的解题思路分析&#xff1a; 代码分析 代码逻辑非常简单直接&#xff1a; 获取参数&#xff1a;通过 $_GET[‘file’] 获取用户输入。 过滤机制&am…

作者头像 李华
网站建设 2026/5/13 18:55:06

基于Git工作流的OpenClaw状态备份工具clawsync设计与实践

1. 项目概述&#xff1a;为什么我们需要一个“Git原生”的备份工具&#xff1f;如果你和我一样&#xff0c;日常重度依赖 OpenClaw 这类现代化开发工具&#xff0c;那么一个挥之不去的痛点就是&#xff1a;状态管理。配置文件、工作区文件、凭据、会话……这些零散但又至关重要…

作者头像 李华