題目.
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...