首页 > 其他分享 >1238. 循环码排列 (Medium)

1238. 循环码排列 (Medium)

时间:2023-02-28 17:45:27浏览次数:54  
标签:Medium start 二进制 1238 循环码 排列

问题描述

1238. 循环码排列 (Medium)

给你两个整数 nstart。你的任务是返回任意 (0,1,2,,...,2^n-1) 的排列
p,并且满足:

  • p[0] = start
  • p[i]p[i+1] 的二进制表示形式只有一位不同
  • p[0]p[2^n -1] 的二进制表示形式也只有一位不同

示例 1:

输入:n = 2, start = 3
输出:[3,2,0,1]
解释:这个排列的二进制表示是 (11,10,00,01)
     所有的相邻元素都有一位是不同的,另一个有效的排列是 [3,1,0,2]

示例 2:

输出:n = 3, start = 2
输出:[2,6,7,5,4,0,1,3]
解释:这个排列的二进制表示是 (010,110,111,101,100,000,001,011)

提示:

  • 1 <= n <= 16
  • 0 <= start < 2^n

解题思路

参照89.格雷编码,只需要将得到的结果再与start按位异或就好了,因为x ^ 0 = x对任意x恒成立。

Code

class Solution {
  public:
    vector<int> circularPermutation(int n, int start) {
        vector<int> res(1 << n, 0);
        for (int i = 0; i < res.size(); i++) {
            res[i] = i ^ (i / 2) ^ start;
        }
        return res;
    }
};

标签:Medium,start,二进制,1238,循环码,排列
From: https://www.cnblogs.com/zwyyy456/p/17165331.html

相关文章

  • 1792. 最大平均通过率 (Medium)
    问题描述1792.最大平均通过率(Medium)一所学校里有一些班级,每个班级里有一些学生,现在每个班都会进行一场期末考试。给你一个二维数组classes,其中classes[i]=[pass......
  • 132 模式 (Medium)
    问题描述456.132模式(Medium)给你一个整数数组nums,数组中共有n个整数。132模式的子序列由三个整数nums[i]、nums[j]和nums[k]组成,并同时满足:i<j<k......
  • 1139. 最大的以 1 为边界的正方形 (Medium)
    问题描述1139.最大的以1为边界的正方形(Medium)给你一个由若干0和1组成的二维网格grid,请你找出边界全部由1组成的最大正方形子网格,并返回该子网格中的元素......
  • 1218.最长定差子序列 (Medium)
    问题描述1218.最长定差子序列(Medium)给你一个整数数组arr和一个整数difference,请你找出并返回arr中最长等差子序列的长度,该子序列中相邻元素之间的差等于differ......
  • 334. 递增的三元子序列 (Medium)
    问题描述334.递增的三元子序列(Medium)给你一个整数数组nums,判断这个数组中是否存在长度为3的递增子序列。如果存在这样的三元组下标(i,j,k)且满足i<j<k......
  • Acwing 1238. 日志统计(双指针)
    https://www.acwing.com/problem/content/1240/1238.日志统计输入样例:71020101010101019110031003输出样例:13首先注意数据范围,0-1e5的数据范围......
  • 417. Pacific Atlantic Water Flow[Medium]
    417.PacificAtlanticWaterFlowThereisanmxnrectangularislandthatbordersboththePacificOceanandAtlanticOcean.ThePacificOceantouchestheisl......
  • 133. Clone Graph[Medium]
    133.CloneGraphGivenareferenceofanodeinaconnectedundirectedgraph.Returnadeepcopy(clone)ofthegraph.Eachnodeinthegraphcontainsavalue......
  • 200. Number of Islands[Medium]
    200.NumberofIslandsGivenanmxn2Dbinarygridgridwhichrepresentsamapof'1's(land)and'0's(water),returnthenumberofislands.Anislandissu......
  • 【LeetCode】1238. 循环码排列
    【LeetCode】1238.循环码排列题目链接格雷码(循环码)格雷码是一种二进制编码,两个相邻数字的格雷码只有一位二进制位的数码不同。自然码转格雷码数的自然码右移一位和......