多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > 個人記錄-LeetCode 78. Subsets

個人記錄-LeetCode 78. Subsets

來源:程序員人生   發布時間:2017-02-24 11:01:24 閱讀次數:3485次

問題:
Given a set of distinct integers, nums, return all possible subsets.

Note: The solution set must not contain duplicate subsets.

For example,
If nums = [1,2,3], a solution is:

[
  [3],
  [1],
  [2],
  [1,2,3],
  [1,3],
  [2,3],
  [1,2],
  []
]

這個問題基本上就是LeetCode 77. Combinations的變種,
其實就是給定1個數組,然后求出從中取出0個、1個、2個…….n個數組成的所有排列。

代碼示例:

public class Solution {
    public List<List<Integer>> subsets(int[] nums) {
        List<List<Integer>> rst = new ArrayList<>();

        if (nums == null || nums.length < 1) {
            return rst;
        }

        rst.add(new ArrayList<>());

        List<List<Integer>> temp;
        for (int i = 1; i <= nums.length; ++i) {
            temp = combine(nums, i);
            rst.addAll(temp);
        }

        return rst;
    }

    //以下基本是LeetCode 77的代碼,略微改了下接口
    private List<List<Integer>> combine(int[] nInts, int k) {
        List<List<Integer>> rst = new ArrayList<>();

        List<Integer> curr = new ArrayList<>();
        for (int i = 0; i <= nInts.length-k; ++i) {
            combineInner(rst, nInts, i, curr, k);
        }

        return rst;
    }

    private void combineInner(List<List<Integer>> rst, int[] nInts, int next, List<Integer> curr, int sz) {
        List<Integer> newList = new ArrayList<>(curr);
        newList.add(nInts[next]);

        if (newList.size() == sz) {
            rst.add(newList);
            return;
        }

        for (int i = next+1; i <= nInts.length - (sz - newList.size()); ++i) {
            combineInner(rst, nInts, i, newList, sz);
        }
    }
}

個人覺得這個問題,在分析完LeetCode 77后,10分容易想到答案。
但如果沒有見過LeetCode 77,直接來解的話,對拆分問題的能力還是有較高要求的。

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产精品成人网 | 国产一区二区三区精品久久呦 | 国产精品不卡高清在线观看 | 永久免费在线视频 | 99欧美在线 | 久久综合九九亚洲一区 | 中文乱码字幕午夜无线观看 | 国产欧美日韩第一页 | 国产美女亚洲精品久久久毛片 | 国产成人精品午夜在线播放 | 午夜视频在线观看www中文 | 在线亚洲+欧美+日本专区 | 国产欧美久久久精品影院 | 国产jizz美国jizz免费看 | 国产精品久久久久久久久久久久 | 精品久久精品久久 | 亚洲最大中文字幕 | 一级做a爱久久久久久久 | 精品一区二区三区五区六区 | 欧洲免费无线码二区5 | xx视频在线 | 中文字幕在线视频第一页 | japanesevideo国产在线 | 亚洲人成一区 | 国产视频二区在线观看 | 91九色网址 | 亚洲精品视频一区二区 | 国产高清不卡 | 澳门特级α片免费观看视频 | 狠狠操网 | 国产极品久久 | a级做爰毛片视频免费看 | 久久精品国产精品亚洲20 | 国产免费一区二区三区免费视频 | 中文字幕最新在线 | 天堂亚洲国产日韩在线看 | 日本大蕉香蕉大视频在线观看 | 图片区偷拍区小说区 | 欧美巨大精品欧美一区二区 | 亚洲国产成人精品青青草原100 | 亚洲精品久久一区二区无卡 |