未知 整数数组 arr 由 n 个非负整数组成。

经编码后变为长度为 n - 1 的另一个整数数组 encoded ,其中 encoded[i] = arr[i] XOR arr[i + 1] 。例如,arr = [1,0,2,1] 经编码后得到 encoded = [1,2,3] 。

给你编码后的数组 encoded 和原数组 arr 的第一个元素 first(arr[0])。

请解码返回原数组 arr 。可以证明答案存在并且是唯一的。

示例 1:

输入:encoded = [1,2,3], first = 1
输出:[1,0,2,1]
解释:若 arr = [1,0,2,1] ,那么 first = 1 且 encoded = [1 XOR 0, 0 XOR 2, 2 XOR 1] = [1,2,3]

示例 2:

输入:encoded = [6,2,7,3], first = 4
输出:[4,2,0,7,4]

解题思路

设原数组为arr[]:

原数组转为encoded [],存在encoded[i] = arr[i] XOR arr[i + 1],根据异或的性质可得,arr[i + 1]=arr[i] XOR encoded[i]

因为题目已经给出了arr[0],便可根据公式得出,arr[1]=arr[0] XOR encoded[0],如此类推,就可以得出原数组

代码

func decode(encoded []int, first int) []int {n:=len(encoded)+1res := make([]int, n)res[0]=firstfor i,j := 1,0; i < n; i++{res[i]=encoded[j]^res[i-1]j++}return res
}

leetcode 1720. 解码异或后的数组(位运算)相关推荐

  1. 力扣每日一题:1720.解码异或后的数组 python异或操作

    1720.解码异或后的数组 https://leetcode-cn.com/problems/decode-xored-array/ 难度:简单 题目: 未知 整数数组 arr 由 n 个非负整数组成 ...

  2. leetcode 1734. 解码异或后的排列(位运算)

    给你一个整数数组 perm ,它是前 n 个正整数的排列,且 n 是个 奇数 . 它被加密成另一个长度为 n - 1 的整数数组 encoded ,满足 encoded[i] = perm[i] XO ...

  3. Leetcode 1734 解码异或后的排列

    题目链接 题目描述 给你一个整数数组 p e r m perm perm,它是前 n n n 个正整数的排列,且 n n n 是个 奇数 . 它被加密成另一个长度为 n n n - 1 的整数数组 e ...

  4. LeetCode 136. Single Number【哈希表/位运算/数学】简单

    本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12.由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止:由于LeetCode还在不断地创建新 ...

  5. 【LeetCode笔记】461. 汉明距离(Java、位运算)

    文章目录 题目描述 思路 & 代码 更新版 题目描述 既然是二进制,那就十有八九用位运算符 既然是不同,那肯定用异或 思路 & 代码 两种方法,总体来说都是处理异或值 方法一,转换成字 ...

  6. LeetCode 1619. 删除某些元素后的数组均值

    文章目录 1. 题目 2. 解题 1. 题目 给你一个整数数组 arr ,请你删除最小 5% 的数字和最大 5% 的数字后,剩余数字的平均值. 与 标准答案 误差在 10^-5 的结果都被视为正确结果 ...

  7. 树状数组 + 位运算 LA 4013 A Sequence of Numbers

    题目传送门 题意:n个数,两种操作,一是每个数字加x,二是查询& (1 << T) == 1 的个数 分析:因为累加是永远的,所以可以离线处理.树状数组点是c[16][M] 表示数 ...

  8. EOJ 3037:十六进制加法(高精度+数组位运算)

    一.思路: 1.字符数组读入,整形数组存储,字符数组输出 2.类似于十进制大数加法,用整型数组模拟运算:总使得长度长的字符串作为s1,这涉及到字符数组交换 3.每次结束时清空整型数组 二.注意点: 1 ...

  9. Java实现 LeetCode 535 TinyURL 的加密与解密(位运算加密)

    535. TinyURL 的加密与解密 TinyURL是一种URL简化服务, 比如:当你输入一个URL https://leetcode.com/problems/design-tinyurl 时,它 ...

最新文章

  1. python 画出决策边界_决策边界可视化,让你的分类合理有序
  2. noi.ac NA535 【生成树】
  3. 消费流程图_SpringBoot+RabbitMQ ,保证消息100%投递成功并被消费(附源码)
  4. 行云管家 V4.7产品新特性-国际化版本、支持Oracle的数据库审计、主机密码自动修改策略 发布日期:2018-11-22...
  5. [数据库笔记]规范化(Normalization)-把数据冗余降下来
  6. 解决easyui textarea 值不显示及获取textarea的值
  7. vue-cli的项目文件说明
  8. Nginx-Web管理系统
  9. CSS:光标跟随实现
  10. c语言编程计算圆柱体的表面积,c语言求圆柱体的表面积和体积
  11. 启动计算机配置windows7,如何设置开机启动项,教您电脑如何设置win7开机启动项...
  12. 新手如何快速入门IT行业?
  13. 2020进博会品牌第一自行车辐轮王助力中国新时代健康建设大业
  14. 【Linux CPUFreq模块】
  15. 艺赛旗(RPA)Python 读写 ini 配置文件
  16. 做服务号还是订阅号?
  17. kotlin 回调函数、let、also、run 、with、apply 使用总结
  18. 奥运戴面具进场到底是丢谁的脸?
  19. Ubuntu 18.04安装显卡驱动
  20. 补充远程桌面数字证书读取问题

热门文章

  1. C++中引用与指针的区别(详细介绍)
  2. 3. 二进制中1的个数
  3. Java-进阶:Java-File--IO—1
  4. 美团点评APP在移动网络性能优化的实践,吊打面试官系列!
  5. 最新BAT大厂面试者整理的Android面试题目模板,成功入职字节跳动
  6. 修改npm全局安装模式的路径
  7. 个人技术博客Alpha----Android Studio UI学习
  8. 如何用chrome扩展将网页变成黑底白字,用以保护视力
  9. Knockoutjs官网翻译系列(一)
  10. JavaScript实现自适应宽度的瀑布流