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

每日一题——LeetCode1720.解码异或后的数组

方法一 异或运算的性质

encoded[i−1]=arr[i−1]⊕arr[i] 在等式两边同时异或arr[i−1] 由于:

  • 一个数异或它自己,结果总是0。

  • 0异或任何数,结果都是那个数本身。

所以等式可以转化为:

arr[i]=arr[i−1]⊕encoded[i−1]

由于 arr[0]=first已知,因此对 i从 1到 n−1依次计算 arr[i] 的值,即可解码得到原数组arr。

var decode = function(encoded, first) {const n = encoded.length + 1;const arr = new Array(n).fill(0);arr[0] = first;for (let i = 1; i < n; i++) {arr[i] = arr[i - 1] ^ encoded[i - 1];}return arr;
};

消耗时间和内存情况:

http://www.lryc.cn/news/325479.html

相关文章:

  • Day47:WEB攻防-PHP应用文件上传函数缺陷条件竞争二次渲染黑白名单JS绕过
  • 【Android】美团组件化路由框架WMRouter源码解析
  • python知识点总结(九)
  • 浅谈Linux中的软锁定(soft lockup)和硬件监视器(watchdog)
  • 数据库的四个特性?MySQL是如何实现的?
  • Jupyter R绘图 汉字显示乱码的解决办法
  • 推荐几个值得一读的Qt开源项目
  • 【XR806开发板试用】使用PWM模块模拟手机呼吸灯提示功能
  • Mysql——索引下推
  • Springboot项目之mybatis-plus多容器分布式部署id重复问题之源码解析
  • 微信答题小程序云开发--实现云函数上传题目图片 base64功能
  • 学会Sass的高级用法,减少样式冗余
  • 【Java初阶(五)】类和对象
  • AWTK-MODBUS 服务器
  • JavaScript快速入门笔记之一(基本概念)
  • 前端学习之css基本网格布局
  • [网鼎杯2018]Unfinish 两种方法 -----不会编程的崽
  • 安防监控视频汇聚平台EasyCVR在银河麒麟V10系统中的启动异常及解决方法
  • 了解云原生
  • 【go从入门到精通】for和for range的区别
  • 【C语言】【Leetcode】88. 合并两个有序数组
  • DMA控制器
  • SQLiteC/C++接口详细介绍sqlite3_stmt类(十)
  • Android 生成Excel文件保存到本地
  • Hive-技术补充-ANTLR语法编写
  • 6.使用个人用户登录域控的成员服务器,如何防止个人用户账号的用户策略生效?
  • 模拟算法
  • 【数据结构刷题专题】—— 二叉树
  • 基于AWS云服务构建智能家居系统的最佳实践
  • Java零基础-集合:Set接口