
1720 解码异或后的数组(模拟)
发布日期:2021-05-07 21:57:03
浏览次数:18
分类:精选文章
本文共 1060 字,大约阅读时间需要 3 分钟。
1. 问题描述:
未知整数数组 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]提示:
2 <= n <= 104
encoded.length == n - 1 0 <= encoded[i] <= 105 0 <= first <= 105来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/decode-xored-array2. 思路分析:
分析题目可以知道我们模拟整个过程即可,举出几个实际一点的例子可以发现a ^ b = c,已知其中的两个数那么就可以求解出第三个数字,对已知的两个数字进行异或就可以得出第三个数字,所以使用循环即可得出对应的答案
3. 代码如下:
from typing import Listclass Solution: def decode(self, encoded: List[int], first: int) -> List[int]: res = list() second = encoded[0] ^ first # extend方法可以添加往列表末尾添加多个元素 res.extend([first, second]) for i in range(1, len(encoded)): # res[-1]表示res列表的最后一个元素值 res.append(encoded[i] ^ res[-1]) return res
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年04月13日 03时13分27秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
详细实例教程!集成华为虚假用户检测,防范虚假恶意流量
2021-05-09
对模拟器虚假设备识别能力提升15%!每日清理大师App集成系统完整性检测
2021-05-09
使用Power BI构建数据仓库与BI方案
2021-05-09
Django认证系统并不鸡肋反而很重要
2021-05-09
快用Django REST framework写写API吧
2021-05-09
tep用户手册帮你从unittest过渡到pytest
2021-05-09
12张图打开JMeter体系结构全局视角
2021-05-09
Spring Boot 2.x基础教程:构建RESTful API与单元测试
2021-05-09
[UWP 自定义控件]了解模板化控件(1):基础知识
2021-05-09
UWP 自定义控件:了解模板化控件 系列文章
2021-05-09
[UWP]从头开始创建并发布一个番茄钟
2021-05-09
在 Azure 上执行一些简单的 python 工作
2021-05-09
WinUI 3 Preview 3 发布了,再一次试试它的性能
2021-05-09
使用命令把SpringBoot项目打包成可运行的jar包(简洁,操作性强)
2021-05-09
List数组排序
2021-05-09
VMware vSphere 离线虚拟机安装 BIND 9
2021-05-09
说说第一份工作
2021-05-09
dojo/request模块整体架构解析
2021-05-09
dojo/aspect源码解析
2021-05-09
Web性能优化:What? Why? How?
2021-05-09