leetcode第21天格雷编码
格雷編碼是一個(gè)二進(jìn)制數(shù)字系統(tǒng),在該系統(tǒng)中,兩個(gè)連續(xù)的數(shù)值僅有一個(gè)位數(shù)的差異。
給定一個(gè)代表編碼總位數(shù)的非負(fù)整數(shù) n,打印其格雷編碼序列。格雷編碼序列必須以 0 開(kāi)頭。
示例 1:
輸入: 2
輸出: [0,1,3,2]
解釋:
00 - 0
01 - 1
11 - 3
10 - 2
對(duì)于給定的 n,其格雷編碼序列并不唯一。
例如,[0,2,3,1] 也是一個(gè)有效的格雷編碼序列。
00 - 0
10 - 2
11 - 3
01 - 1
示例 2:
來(lái)源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/gray-code
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
題目中的各類編碼可以用二進(jìn)制的方法來(lái)做。
class Solution {
public List grayCode(int n) {
List res = new ArrayList<>();
for (int i = 0; i < Math.pow(2, n); i++) {
res.add((i >> 1) ^ i);
}
return res;
}
}
總結(jié)
以上是生活随笔為你收集整理的leetcode第21天格雷编码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【rf】robotframework自动
- 下一篇: CLRS 16.2贪心算法的原理