一次過 Lintcode 152 組合

2021-09-11 07:23:53 字數 578 閱讀 9473

組給出兩個整數n和k,返回從1......n中選出的k個數的組合。

例如 n = 4 且 k = 2

返回的解為:

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

不需要在意組合的順序,但是你應該確保組合中的數字是有序的

標準dfs解法

public class solution 

private void dfs(int n, int k, listlist, list> res, int index)

for(int i = index; i <= n; i++)

}}

//剪枝優化:

//到現在還有k - list.size()個空位,也就是[i...n]至少要有k-list.size()個空位

//所以i最多為n - (k - list.size()) + 1

將dfs中的for迴圈改為:

for(int i = index; i <= n - (k - list.size()) + 1; i++)

一次過 Lintcode 488 快樂數

寫乙個演算法來判斷乙個數是不是 快樂數 乙個數是不是快樂是這麼定義的 對於乙個正整數,每一次將該數替換為他每個位置上的數字的平方和,然後重複這個過程直到這個數變為1,或是無限迴圈但始終變不到1。如果可以變為1,那麼這個數就是快樂數。19 就是乙個快樂數。1 2 9 2 82 8 2 2 2 68 6...

一次過 Lintcode 496 玩具工廠

工廠模式是一種常見的設計模式。請實現乙個玩具工廠toyfactory用來產生不同的玩具類。可以假設只有貓和狗兩種玩具。toyfactory tf toyfactory toy toy tf.gettoy dog toy.talk wow toy tf.gettoy cat toy.talk meow...

一次過 Lintcode 956 資料分割

給出乙個字串str,你需要按順序提取出該字串的符號和單詞。樣例 1 輸入 str hi i am bye 輸出 hi i am bye 解釋 將符號和單詞分割。樣例 2 輸入 str ok yes 輸出 ok yes 解釋 將符號和單詞分割。樣例 3 輸入 str s 輸出 s 解釋 將符號和單詞分...