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
          主站蜘蛛池模板: 西贡区| 武安市| 汤阴县| 峨山| 中卫市| 株洲市| 板桥市| 望奎县| 康定县| 白水县| 南涧| 宜兰市| 托克托县| 望奎县| 方正县| 化德县| 商都县| 濮阳市| 万盛区| 义乌市| 黄骅市| 孟连| 万州区| 双鸭山市| 康平县| 靖远县| 安康市| 新建县| 巴青县| 太湖县| 泸溪县| 东宁县| 竹溪县| 广平县| 绍兴县| 清流县| 平原县| 思茅市| 邢台市| 新源县| 延庆县|