写点什么

LeetCode 题解:1720. 解码异或后的数组,异或,JavaScript,详细注释

作者:Lee Chen
  • 2023-09-14
    福建
  • 本文字数:361 字

    阅读完需:约 1 分钟

原题链接:https://leetcode.cn/problems/decode-xored-array/


解题思路:


  1. 异或有如下性质:

  2. a ^ a = 0

  3. a ^ 0 = a

  4. a ^ b = b ^ a

  5. 根据题意,已知encoded[i - 1] = arr[i - 1] ^ arr[i],可以做如下转换:

  6. encoded[i - 1] ^ arr[i - 1] = arr[i - 1] ^ arr[i] ^ arr[i - 1]

  7. encoded[i - 1] ^ arr[i - 1] = arr[i] ^ 0

  8. encoded[i - 1] ^ arr[i - 1] = arr[i]


/** * @param {number[]} encoded * @param {number} first * @return {number[]} */var decode = function (encoded, first) {  // 创建数组缓存最终结果,长度为encoded.length + 1,已知result[0]为first  let arr = new Array(encoded.length + 1)  arr[0] = first
for (let i = 1; i < arr.length; i++) { // 根据异或的性质,计算arr的每个值 arr[i] = arr[i - 1] ^ encoded[i - 1] }
return arr};
复制代码


发布于: 刚刚阅读数: 6
用户头像

Lee Chen

关注

还未添加个人签名 2018-08-29 加入

还未添加个人简介

评论

发布
暂无评论
LeetCode题解:1720. 解码异或后的数组,异或,JavaScript,详细注释_JavaScript_Lee Chen_InfoQ写作社区