LeetCode OJ - Gray Code
这道题就是找规律啊!!!
想想啊,11和10是可以连续的,那么10和11也是可以连续的。
下面是AC代码:
1 /** 2 * The gray code is a binary numeral system where two successive values differ in only one bit. 3 * Given a non-negative integer n representing the total number of bits in the code, print the sequence of gray code. A gray code sequence must begin with 0. 4 * For example, given n = 2, return [0,1,3,2]. Its gray code sequence is: 5 * 00 - 0 6 * 01 - 1 7 * 11 - 3 8 * 10 - 2 9 * Note: 10 * For a given n, a gray code sequence is not uniquely defined. 11 * For example, [0,2,3,1] is also a valid gray code sequence according to the above definition. 12 * For now, the judge is able to judge based on one instance of gray code sequence. Sorry about that. 13 * Solution : find the rule!!!! 14 * @param n 15 * @return 16 */ 17 public ArrayList<Integer> grayCode(int n) { 18 ArrayList<Integer> r = new ArrayList<Integer>(); 19 r.add(0); 20 if(n == 0) 21 return r; 22 r.add(1); 23 if(n == 1) 24 return r; 25 for(int m = 1;m<n;m++){ 26 int cur_size = r.size(); 27 int base = (int) Math.pow(2, m); 28 for(int i = cur_size - 1;i>=0;i--){ 29 r.add(r.get(i)+base); 30 } 31 } 32 return r; 33 }
有问题可以和我联系,bettyting2010#163 dot com
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步