39 組合總和

2021-09-29 11:54:35 字數 938 閱讀 1765

題目.

middle

就是遞迴,當前只解決乙個數。假設這個數出現0次,1次,n次,問題規模每次減少乙個。先排序,便於快速結束

package main

import

("fmt"

"sort"

)func

combinationsumsorted

(candidates [

]int

, target int)[

][]int

cur := candidates[0]

if cur > target

candidates = candidates[1:

] results :=

make([

][]int,0

)for i :=

0; i*cur <= target; i++

results =

(results, t)

}else

copy

(t[i:

], v)

results =

(results, t)}}

}}return results

}func

combinationsum

(candidates [

]int

, target int)[

][]int

func

main()

fmt.

println

(combinationsum

(candidates,8)

)}

o(n階乘)

o(n)

執行用時 :4 ms, 在所有 golang 提交中擊敗了89.53%的使用者

記憶體消耗 :4.9 mb, 在所有 golang 提交中擊敗了34.54%的使用者

39 組合總和

給定乙個無重複元素的陣列 candidates 和乙個目標數 target 找出 candidates 中所有可以使數字和為 target 的組合。candidates 中的數字可以無限制重複被選取。說明 示例 1 輸入 candidates 2,3,6,7 target 7,所求解集為 7 2,2...

39 組合總和

給定乙個無重複元素的陣列candidates和乙個目標數target,找出candidates中所有可以使數字和為target的組合。candidates中的數字可以無限制重複被選取。說明 示例 1 輸入 candidates 2,3,6,7 target 7,所求解集為 7 2,2,3 示例 2 ...

39 組合總和

給定乙個無重複元素的陣列candidates和乙個目標數target,找出candidates中所有可以使數字和為target的組合。candidates中的數字可以無限制重複被選取。說明 輸入 candidates 2,3,6,7 target 7,所求解集為 7 2,2,3 輸入 candida...