LeetCode 2433.找出前缀异或的原始数组

给你一个长度为 n 的 整数 数组 pref 。找出并返回满足下述条件且长度为 n 的数组 arr :

pref[i] = arr[0] ^ arr[1] ^ … ^ arr[i].
注意 ^ 表示 按位异或(bitwise-xor)运算。

可以证明答案是 唯一 的。

示例 1:

输入:pref = [5,2,0,3,1]
输出:[5,7,2,3,2]
解释:从数组 [5,7,2,3,2] 可以得到如下结果:

  • pref[0] = 5
  • pref[1] = 5 ^ 7 = 2
  • pref[2] = 5 ^ 7 ^ 2 = 0
  • pref[3] = 5 ^ 7 ^ 2 ^ 3 = 3
  • pref[4] = 5 ^ 7 ^ 2 ^ 3 ^ 2 = 1
    示例 2:

输入:pref = [13]
输出:[13]
解释:pref[0] = arr[0] = 13

提示:

1 <= pref.length <= 105
0 <= pref[i] <= 106

根据题意,我们得到以下公式:
pref[i - 1] = arr[0] ^ arr[1] ^ … ^ arr[i - 1]
pref[i] = arr[0] ^ arr[1] ^ … ^ arr[i] = pref[i - 1] ^ arr[i]

如果a ^ b = c,则b = a ^ c,a = b ^ c,因此arr[i] = pref[i] ^ pref[i - 1],直接模拟即可:

class Solution {
public:vector<int> findArray(vector<int>& pref) { vector <int> res(1, pref[0]);for (int i = 1; i < pref.size(); ++i){res.push_back(pref[i - 1] ^ pref[i]);}return res;}
};

如果pref的长度为n,则此算法时间复杂度为O(n),空间复杂度为O(1)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/701887.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

亿级用户在线状态查询:Redis高效解决方案

在拥有10亿用户的场景中&#xff0c;使用UUID作为用户标识符来统计在线状态是一个很好的选择&#xff0c;因为它可以确保每个用户的唯一性。针对UUID和在线状态统计&#xff0c;结合Redis&#xff0c;您可以采用以下策略&#xff1a; 1. 使用Redis的哈希表&#xff08;Hashes&…

Python世界之运算符

一、算术运算符 以下假设变量&#xff1a; a10&#xff0c;b20&#xff1a; 运算符 描述 实例 加 - 两个对象相加 a b 输出结果 30 - 减 - 得到负数或是一个数减去另一个数 a - b 输出结果 -10 * 乘 - 两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结…

Seata Server 服务搭建

概述 Seata 分布式事务需要 Seata Seaver 支持&#xff0c;Seata Server在 架构中扮演着 事务管理器的角色。Seata 服务需要往 Nacos 注册中心注册、以及读取配置文件&#xff0c;因此 Seata 启动前需要部署 Nacos 环境。 安装包下载 下载地址: https://download.csdn.net/dow…

【《高性能 MySQL》摘录】第 2 章 MySQL 基准测试

文章目录 2.1 为什么需要基准测试2.2 基准测试的策略2.2.1 测试何种指标 2.3 基准测试方法2.3.1 设计和规划基准测试2.3.2 基准测试应该运行多长时间2.3.3 获取系统性能和状态2.3.4 获得准确的测试结果2.3.5 运行基准测试并分析结果2.3.6 绘图的重要性 2.4 基准测试工具…

SQL多个字段拼接组合成新字段的常用方法

在sql语句中&#xff0c;有时候我们可能需要将两个字段的值放在一起显示&#xff0c;因为他们通常是一起出现的&#xff0c;比如客户名称和客户编号&#xff0c;那我们就要将这两个字段拼接成一个字段。下面是几种常见的方法&#xff1a; 一、CONCAT()函数 SELECT CONCAT(col…

超参数优化

超参数优化 超参数是用于控制学习过程的不同参数值&#xff0c;对机器学习模型的性能有显著影响。例如&#xff0c;随机森林算法中的估计器数量、最大深度和分裂标准等。超参数优化是找到超参数值的正确组合&#xff0c;以便在合理的时间内实现数据最大性能的过程。这个过程在…

MATLAB环境下基于NLEO的算法的脑电EEG信号自发活动瞬态检测

自发脑电信号是一种非平稳性很强的随机信号。在传统的脑电信号处理中&#xff0c;较公认的处理方法大多是建立在假设脑电图是准平稳信号的基础上&#xff0c;即认为它可以分成若干段&#xff0c;每一段的过程基本平稳&#xff0c;但段上叠加着瞬态。瞬态信号是有别于背景节率&a…

Linux环境非root用户配置SSH免密登录,并解决登录仍提示输入密码

Linux环境非root用户配置SSH免密登录&#xff0c;并解决登录仍提示输入密码 ssh免密登录的简单理解 以A和B进行举例&#xff1a;A免密登录B &#xff08;即在A服务器输入命令&#xff1a;ssh 非root用户名B的IP地址&#xff09;可以直接免密码直接登录 A生成私钥和公钥&#…

爬虫工作量由小到大的思维转变---<第四十八章 Scrapy 的请求和follow问题>

前言: 有时,在爬取网页的时候,页面可能只能提取到对应的url,但是具体需要提取的信息需要到下一页(url)里面; 这时候,不要在中间件去requests请求去返回response; 用这个方法.... 正文: 在Scrapy框架内&#xff0c;如果你想从一个页面提取URL&#xff0c;然后跳转到这个URL以…

Linux平台下互换ESC和Caps Lock按键

目录 1.调试手段2.设置2.1.查看当前键盘布局2.2.修改配置2.3.重启或logout生效 3.查看按键映射表 参考资料 当使用Linux作为办公平台&#xff0c;设置映射。 如果在windows平台下使用Linux虚拟机&#xff0c;使用windows宿主平台的按键映射。 windows互换ESC和Caps Lock按键 刚…

【Activiti7系列】Activi7简介和基于Spring Boot整合Activiti7(流程设计器)

本文将介绍Activiti7基础概念及基于Spring Boot整合Activiti7(流程设计器)的具体步骤。 作者&#xff1a;后端小肥肠 1. 前言 在企业级应用中&#xff0c;业务流程的管理和执行是至关重要的一环。Activiti7是一个强大的开源工作流引擎&#xff0c;它提供了灵活的流程定义、任务…

【uni-app】生命周期

页面运行过程中&#xff0c;各个阶段的回调函数就是“生命周期钩子函数”。 uni-app 完整支持 Vue 实例的生命周期&#xff0c;同时还新增 应用生命周期 及 页面生命周期。 &#xff08;1&#xff09;应用生命周期 函数名说明onLaunch当uni-app 初始化完成时触发&#xff08…

argparse读取参数

用法argparseExample.py简单示例参考 用法 argparse是内置于python中&#xff0c;所以即为直接在命令行中对程序传入参数并让程序运行的便捷工具。具体步骤如下所示 导包&#xff0c;为import argparse创建一个ArugmentParser对象&#xff0c;随后一切都在这个对象里面操作&am…

SpringBoot3+Vue3 基础知识(持续更新中~)

bean 把方法的返回结果注入到ioc中 1: 2: 3: 组合注解封装 实战篇&#xff1a; 解析token&#xff1a; 统一携带token&#xff1a; 驼峰命名与下划线命名转换&#xff1a; NotEmpty!!! mybatis&#xff1a; PageHelper设置后&#xff0c;会将pageNum,和pageSize自己拼接…

安全相关问题记录

一、预防XSS攻击 校验输入时进行格式校验过滤过滤<script>,<iframe>等特殊标签过滤onclick,onerror,onfocus等js事件属性编码转义对需要渲染的内容做编码转义限制限制输入长度cookie设置成 http only

Flink 的历史版本特性介绍(一)

如果你还不了解 Flink 是什么,可以查看我之前的介绍文章:Flink 介绍 如果你想跟着我一起学习 flink,欢迎查看订阅专栏:Flink 专栏 这篇文章列举了 Flink 每次发布的版本中的重要特性,从中可以看出 Flink 是如何一步一步发展到今天的。 Flink 的前身是 Stratosphere 项目…

Git笔记——4

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言 一、操作标签 二、推送标签 三、多人协作一 完成准备工作 协作开发 将内容合并进master 四、多人协作二 协作开发 将内容合并进master 五、解决 git branch -a…

【深度学习笔记】3_11 模型选择、欠拟合和过拟合

注&#xff1a;本文为《动手学深度学习》开源内容&#xff0c;做了部分个人理解标注&#xff0c;仅为个人学习记录&#xff0c;无抄袭搬运意图 3.11 模型选择、欠拟合和过拟合 在前几节基于Fashion-MNIST数据集的实验中&#xff0c;我们评价了机器学习模型在训练数据集和测试数…

集合的并发修改异常问题

使用迭代器遍历集合时&#xff0c;同时在删除集合中的数据&#xff0c;程序就会出现并发修改异常的错误。 import java.util.ArrayList; import java.util.Iterator; import java.util.List;public class _Exception {public static void main(String[] args) {List<String…

Kubernetes基本部署概念

文章目录 命名空间&#xff08;Namespaecs&#xff09;查看命名空间查看带有命名空间对象下资源 文件存储持久卷&#xff08;pv&#xff0c;Persistent Volumes&#xff09;卷容量卷模式&#xff08;volumeMode&#xff09;访问模式&#xff08;accessModes&#xff09;回收策略…