JasonChang

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1
public class Solution { 2 public ArrayList<Integer> grayCode(int n) { 3 // IMPORTANT: Please reset any member data you declared, as 4 // the same Solution instance will be reused for each test case. 5 ArrayList<Integer> result = new ArrayList<Integer>(); 6 if(n < 0) 7 return result; 8 int count = 1 << n; 9 for(int i = 0; i < count; i++) 10 result.add(i^(i>>1)); 11 return result; 12 13 } 14 }

 

 1 public class Solution {
 2     public ArrayList<Integer> grayCode(int n) {
 3         // IMPORTANT: Please reset any member data you declared, as
 4         // the same Solution instance will be reused for each test case.
 5         ArrayList<Integer> result = new ArrayList<Integer>();
 6         if(n <= 1){
 7             result.add(0);
 8             if(n == 1){
 9                 result.add(1);
10             }
11             return result;
12         }
13         
14         ArrayList<Integer> pre = grayCode(n - 1);
15         int highest = 1 << (n - 1);
16         result.addAll(pre);
17         for(int i = pre.size() - 1; i >= 0 ; i --){
18             result.add(pre.get(i) + highest);
19         }
20         return result;
21     }
22 }

 

posted on 2013-11-13 03:24  JasonChang  阅读(151)  评论(0编辑  收藏  举报