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 閱讀(253) 評論(0)  編輯  收藏 所屬分類: Leetcode
          主站蜘蛛池模板: 陆川县| 新干县| 尚志市| 濮阳市| 浦县| 五大连池市| 韶山市| 洪洞县| 儋州市| 黑龙江省| 宣恩县| 大荔县| 沛县| 大石桥市| 安阳市| 平邑县| 台山市| 孟州市| 西峡县| 晋中市| 墨江| 城固县| 沾化县| 平阳县| 夏河县| 剑阁县| 平和县| 凌海市| 昌江| 红安县| 普格县| 淮北市| 祥云县| 交城县| 松滋市| 宣恩县| 名山县| 福海县| 武乡县| 杭州市| 桃源县|