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

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.lryc.cn/news/306127.html

相关文章:

  • C++面试:系统网络性能评估与优化
  • Java适配器模式 - 灵活应对不匹配的接口
  • [ai笔记12] chatGPT技术体系梳理+本质探寻
  • Elasticsearch:使用 ELSER v2 进行语义搜索
  • 智慧农业之智能物流
  • Redis主从、哨兵、Redis Cluster集群架构
  • Javascript 运算符、流程控制语句和数组
  • 电机驱动死区时间
  • 图像的压缩感知的MATLAB实现(第3种方案)
  • 高温应用中GaN HEMT大信号建模的ASM-HEMT
  • 文件上传---->生僻字解析漏洞
  • Ubuntu中Python3找不到_sqlite3模块
  • HarmonyOS4.0系统性深入开发37 改善布局性能
  • Internet协议
  • 深度学习基础(一)神经网络基本原理
  • 2024年2月22日 - mis
  • 拼接 URL(C 语言)【字符串处理】
  • 故障排除:Failed to load SQL Modules into database Cluster
  • 【超详细】HIVE 日期函数(当前日期、时间戳转换、前一天日期等)
  • [ffmpeg] x264 配置参数解析
  • GO语言基础总结
  • 飞天使-linux操作的一些技巧与知识点7-devops
  • Sora:视频生成模型作为世界模拟器
  • FairyGUI × Cocos Creator 3.x 使用方式
  • 基于Java的养生健康管理系统
  • Python课堂16——异常查找及处理
  • 任务书参考答案-模块1任务一
  • 2023最新盲盒交友脱单系统源码
  • Half-Band filter(半带滤波器)
  • 2024年环境安全科学、材料工程与制造国际学术会议(ESSMEM2024)