216. Combination Sum III
生活随笔
收集整理的這篇文章主要介紹了
216. Combination Sum III
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
/** 216. Combination Sum III * 2016-6-12 by Mingyang* i一定要取到9,雖然大小聰明,想只取到7,但是后面的遍歷可能也會(huì)遍歷到9啊。* 1.長(zhǎng)度標(biāo)準(zhǔn):無(wú)(固定等于k)* 2.可選的范圍:從start開(kāi)始到9* 3.往前走一步:temp加入這個(gè)數(shù),k-1表示又來(lái)了一位,n-i,然后i加1表示從下一位加起* 4.后退一步:temp減去這個(gè)數(shù)* 5.特別的case:剩下的小于0直接return* 6.關(guān)于重復(fù):11 和1 在第一個(gè)1用了以后,第二個(gè)1就不用了* 錯(cuò)誤點(diǎn)1:自己做的時(shí)候不知道i加到多少,題目已經(jīng)明確說(shuō)過(guò)到9就好了* 錯(cuò)誤點(diǎn)2:就是下一輪dfs的start為i加1不是start加1*/public static List<List<Integer>> combinationSum3(int k, int n) {List<List<Integer>> res = new ArrayList<List<Integer>>();List<Integer> temp = new ArrayList<Integer>();dfs(res, temp, k, n, 1);return res;}public static void dfs(List<List<Integer>> res, List<Integer> temp, int k, int n,int start) {if (k == 0) {if (n == 0) {res.add(new ArrayList<Integer>(temp));}return;}for (int i = start; i <= 9; i++) {temp.add(i);dfs(res, temp, k - 1, n - i, i+1);//這個(gè)地方非常容易錯(cuò),就是下一個(gè)是i加1!!!!并不是start+1!!!!!!!!!!!!!!!!temp.remove(temp.size() - 1);}}
?
轉(zhuǎn)載于:https://www.cnblogs.com/zmyvszk/p/5579302.html
總結(jié)
以上是生活随笔為你收集整理的216. Combination Sum III的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: js接受url参数
- 下一篇: HTML5新增标签的汇总与详解