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

日照莒县网站建设公司软文撰写案例

日照莒县网站建设公司,软文撰写案例,莲都网站建设,内蒙古微信公众号114查原题链接: https://leetcode.cn/problems/circular-permutation-in-binary-representation/ 前置条件: 在解题之前,请先一定要阅读89.格雷编码的题解格雷编码可以满足题目的条件“p[i] 和 p[i1] 的二进制表示形式只有一位不同”&#xff0c…

原题链接:
https://leetcode.cn/problems/circular-permutation-in-binary-representation/

前置条件:

  1. 在解题之前,请先一定要阅读89.格雷编码的题解
  2. 格雷编码可以满足题目的条件“p[i]p[i+1] 的二进制表示形式只有一位不同”,以及“p[0]p[2^n -1] 的二进制表示形式也只有一位不同”
  3. 我们需要将格雷编码转换成以start开头的一串编码即可
  4. 为何要用异或:
    • 格雷编码的第一个是0,可以得知0 ^ start = start
    • 回顾一下异或操作,可以知道如果对每一位都进行异或操作,每一位之间的逻辑关系的变化是同步的
    • 也就是说,p[i]p[i+1]的相互关系,以及p[0]p[2^n -1] 的相互关系不会改变
      a | b | a XOR b
      —|—|---------
      0 | 0 | 0
      0 | 1 | 1
      1 | 0 | 1
      1 | 1 | 0

解法一:两次循环:

  1. 按照89.格雷编码的方法求出格雷编码
  2. 将格雷编码的每一位都按位异或start,即可求得结果
/*** @param {number} n* @param {number} start* @return {number[]}*/
var circularPermutation = function (n, start) {/* * 第一步,先求格雷编码*/let result = [0] // 存储结果,第一个整数为0// 一共计算n位格雷码序列,需要循环n次for (let i = 0; i < n; i++) {// 每次计算时,已有的序列不变// 只需要计算已有序列的逆序列,每个再加前缀1// 需要缓存已有序列的长度,用于计算下一段序列const len = result.length// 由于是逆序计算,因此要从len - 1开始加前缀for (let j = len - 1; j >= 0; j--) {// 加前缀1后,把新值存入结果result.push(result[j] | (1 << i))}}/* * 第二步,将格雷编码的每一项都按位异或start*/for (let i = 0; i < result.length; i++) {result[i] ^= start}return result
}

解法二:

  1. 可以在解法一的基础上,将第二步的异或操作,放到第一步的第二层循环中,具体方法如下:
    • 每次查找result中的元素时,将其异或start,将其转为格雷编码
    • 给格雷编码加上前缀1
    • 存入result时,将其异或start,转为以start开头的编码
/*** @param {number} n* @param {number} start* @return {number[]}*/
var circularPermutation = function (n, start) {let result = [start] // // 存储结果,第一个整数为start// 一共计算n位编码,需要循环n次for (let i = 0; i < n; i++) {// 每次计算时,已有的序列不变// 只需要计算已有序列的逆序列,每个再加前缀1// 需要缓存已有序列的长度,用于计算下一段序列const len = result.length// 由于是逆序计算,因此要从len - 1开始加前缀for (let j = len - 1; j >= 0; j--) {// 加前缀1后,把新值存入结果result.push(// 将编码异或start,转为格雷编码((result[j] ^ start) |// 为格雷编码加上前缀1(1 << i)) ^// 将格雷编码异或start,转为以start开头的编码start)}}return result
}
http://www.15wanjia.com/news/8329.html

相关文章:

  • 请简述网站建设的方法网站如何提交百度收录
  • 上线了相同网站黄山网站建设
  • 我们网站在那里登陆后台系统管理域名注册网站哪个好
  • 长沙做黄叶和网站的公司有哪些seo主要优化
  • wordpress显示指定分类目录青岛百度快速排名优化
  • 印度尼西亚网站后缀网络营销总结及体会
  • 可以免费做会计题的网站网站一级域名和二级域名区别
  • 安徽区块链虚拟币网站开发方案今日重庆重要消息
  • 免费建设dj网站百度搜索量怎么查
  • 刘家窑做网站头条号权重查询
  • wordpress拿站企业宣传册
  • 2023中央农村工作会议南昌seo外包公司
  • 首都规划建设委员会办公室网站长沙seo网络推广
  • 溧水区住房城乡建设局网站西安霸屏推广
  • 做外贸的数据网站有哪些沈阳seo技术
  • 网站开发费用记账百度平台推广该怎么做
  • 柳河县做网站百度产品推广怎么收费
  • 我在日本做动画视频网站51网站统计
  • 公司网站后台管理营销培训课程有哪些
  • 新疆营销型网站建设自媒体十大平台
  • 做sgs认证公司网站国内新闻最新消息简短
  • 做优秀网站学新媒体运营最好的培训学校
  • 用ps做网站网页第三波疫情将全面大爆发
  • 中国十大网站建设企业站长工具网站
  • 永州网站建设企业独立站seo建站系统
  • 淘宝客app定制seo计费系统源码
  • 太原网站制作在线青岛网站建设公司
  • 做的网站有营销效果吗广州白云区最新信息
  • 高端网站官网企业网站设计论文
  • 成都企业网站建设 四川冠辰科技个人主页网页设计