日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > php開源 > php教程 > 個(gè)人記錄-LeetCode 77. Combinations

個(gè)人記錄-LeetCode 77. Combinations

來源:程序員人生   發(fā)布時(shí)間:2017-04-07 10:56:22 閱讀次數(shù):3746次

問題:
Given two integers n and k, return all possible combinations of k numbers out of 1 … n.

For example,
If n = 4 and k = 2, a solution is:

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

依照我們做排列的思路寫代碼便可:
1、按順序從小到達(dá)排列n個(gè)數(shù)。
2、從中取出k個(gè)數(shù),其實(shí)就是先取出1個(gè) (k種可能),然后從剩下的k⑴個(gè)中再取出1個(gè)(k⑴種可能),以此類推。

為了保證取出的組合不重復(fù),我們保證下1個(gè)取出的數(shù)1定在當(dāng)前數(shù)的后面便可。
即第1個(gè)數(shù)取了1后,第2個(gè)數(shù)只能從2~n中取;第1個(gè)數(shù)取了2后,第2個(gè)數(shù)只能從3~n中取 (取了2再取1,會(huì)和取了1再取2重復(fù))。

整體來說結(jié)果就是將第1位為1的所有排列取完后,才開始取所有第1位為2的排列,順次類推。

代碼示例:

public class Solution {
    public List<List<Integer>> combine(int n, int k) {
        List<List<Integer>> rst = new ArrayList<>();

        if (n < 0 || k < 0 || n < k) {
            return rst;
        }

        //初始化數(shù)組
        int[] nInts = new int[n];
        for (int i = 0; i < n; ++i) {
            nInts[i] = i+1;
        }

        List<Integer> curr = new ArrayList<>();
        for (int i = 0; i <= n-k; ++i) {
            //順次安排好第1位,這個(gè)實(shí)際上是基于深度優(yōu)先的迭代
            combineInner(rst, nInts, i, curr, k);
        }

        return rst;
    }

    private void combineInner(List<List<Integer>> rst, int[] nInts, int next, List<Integer> curr, int sz) {
        //將當(dāng)前數(shù)加入結(jié)果隊(duì)列
        List<Integer> newList = new ArrayList<>(curr);
        newList.add(nInts[next]);

        //判斷長度是不是滿足了條件
        if (newList.size() == sz) {
            rst.add(newList);
            return;
        }

        //順次加入當(dāng)前位以后的數(shù)
        for (int i = next+1; i <= nInts.length - (sz - newList.size()); ++i) {
            combineInner(rst, nInts, i, newList, sz);
        }
    }
}
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 成人国产精品入麻豆 | 精品久草 | 一区二区三区四区在线 | 亚洲成av人片在线观看香蕉 | 综合婷婷 | 色av影视 | 国产成人久久精品麻豆二区 | 国产精品高清在线观看 | 黄色免费在线视频 | 免费久久网站 | 精品国产91 | 亚洲精品二 | 国产日韩欧美在线影视 | 国产99在线 | 欧美 | 99色婷婷 | 久久嫩草精品久久久精品才艺表演 | 亚洲精品一二三 | 亚洲精品黄色 | 欧美日韩视频一区二区三区 | 久久91久久| 亚洲一区久久 | 99精品免费 | 国产一区二区在线视频观看 | 成人精品影院 | 国产福利视频导航 | 一区二区三区欧美日韩 | 国产亚洲综合性久久久影院 | 99爱在线视频 | 国产免费看片 | 亚洲国产精品人人爽夜夜爽 | 视频在线国产 | 日韩在线欧美 | 最新中文字幕视频在线 | 亚洲成人在线视频播放 | 日韩av中文 | 欧美日韩国产一区二区三区 | 国产精品 欧美激情 | 黄色片网| 精品国产一区二区三区四区四 | 99re在线观看 | 日韩中文在线 |