[Leetcode][python]Gray Code
2017-10-28 01:47
330 查看
题目大意
求格雷码解题思路
格雷码维基百科:https://zh.wikipedia.org/wiki/%E6%A0%BC%E9%9B%B7%E7%A0%81
代码
class Solution(object): def grayCode(self, n): """ :type n: int :rtype: List[int] """ res = [] size = 1 << n # 若n=4,左移4位,从1到了10000,就是16(高位丢弃,低位补0) print bin(size) for i in range(size): # print i, bin(i), bin((i >> 1)), bin((i >> 1) ^ i) # 最后求异或 res.append((i >> 1) ^ i) return res
看输出理解:
0b10000 0 0b0 0b0 0b0 1 0b1 0b0 0b1 2 0b10 0b1 0b11 3 0b11 0b1 0b10 4 0b100 0b10 0b110 5 0b101 0b10 0b111 6 0b110 0b11 0b101 7 0b111 0b11 0b100 8 0b1000 0b100 0b1100 9 0b1001 0b100 0b1101 10 0b1010 0b101 0b1111 11 0b1011 0b101 0b1110 12 0b1100 0b110 0b1010 13 0b1101 0b110 0b1011 14 0b1110 0b111 0b1001 15 0b1111 0b111 0b1000
总结
位操作符复习:http://www.runoob.com/python/python-operators.html
相关文章推荐
- [LeetCode]题解(python):089-Gray Code
- LeetCode 89 Gray Code (Python详解及实现)
- leetcode Rotate list (链表旋转)的python实现
- Gray Code (格雷码编码) 【leetcode】
- [Leetcode][python/java]3Sum
- 【LeetCode with Python】 Climbing Stairs
- Leetcode-Search Insert Position-Python
- 【LeetCode with Python】 Symmetric Tree
- leetcode第一刷_Gray Code
- 198. House Robber Leetcode Python
- **Leetcode_container-with-most-water(c++ and python version)
- [leetcode: Python]283. Move Zeroes
- [leetcode: Python ]371. Sum of Two Integers
- [Leetcode][python]Reverse Linked List/Reverse Linked List II
- 【一】Leetcode之Python刷题之路
- python写算法题:leetcode: 32. Longest Valid Parentheses
- [Leetcode]@python 74. Search a 2D Matrix
- Leetcode-Climbing Stairs-Python
- python写算法题:leetcode: 16. 3Sum Closest
- 【Leetcode】【python】Recover Binary Search Tree