IT技術小屋

          秋風秋雨,皆入我心

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            38 隨筆 :: 1 文章 :: 19 評論 :: 0 Trackbacks

          Subsets的解法是從空集開始,依次取每一個元素與子集中的每個集合做并操作。實現代碼如下:

           1 public class Subsets {
           2     public ArrayList<ArrayList<Integer>> subsets(int[] S) {
           3         Arrays.sort(S);
           4         ArrayList<ArrayList<Integer>> subsets = new ArrayList<ArrayList<Integer>>();
           5         subsets.add(new ArrayList<Integer>());
           6         for (int i = 0; i < S.length; i++) {
           7             int size = subsets.size();
           8             for (int j = 0; j < size; j++) {
           9                 ArrayList<Integer> subset = new ArrayList<Integer>(
          10                         subsets.get(j));
          11                 subset.add(S[i]);
          12                 subsets.add(subset);
          13             }
          14         }
          15         return subsets;
          16     }
          17 }

          Gray Code的算法是初始時集合中只有{0, 1}兩個元素,此后在每個元素的前面附加一個1。實現代碼如下:

           1 public class GrayCode {
           2     public ArrayList<Integer> grayCode(int n) {
           3         ArrayList<Integer> result = new ArrayList<Integer>();
           4         if (n == 0) {
           5             result.add(0);
           6             return result;
           7         }
           8         ;
           9         result.add(0);
          10         result.add(1);
          11         for (int i = 1; i < n; i++) {
          12             ArrayList<Integer> tmp = new ArrayList<Integer>(result);
          13             Integer a = 1 << i;
          14             for (int k = result.size() - 1; k >= 0; k--) {
          15                 tmp.add(result.get(k) + a);
          16             }
          17             result = tmp;
          18         }
          19         return result;
          20     }
          21 }

          posted on 2013-12-24 12:06 Meng Lee 閱讀(257) 評論(0)  編輯  收藏 所屬分類: Leetcode
          主站蜘蛛池模板: 尤溪县| 开封市| 东丰县| 友谊县| 金山区| 汝州市| 鄯善县| 阳谷县| 扎囊县| 巴林左旗| 怀远县| 田东县| 常州市| 焦作市| 潢川县| 白玉县| 连云港市| 陆川县| 石林| 综艺| 宣武区| 沙田区| 肇源县| 武陟县| 肥城市| 靖安县| 德州市| 大化| 普宁市| 噶尔县| 凤翔县| 青阳县| 甘洛县| 运城市| 古蔺县| 吉林省| 修武县| 苍梧县| 织金县| 旺苍县| 甘谷县|