求组合数python_给定一个序列求指定位数的排列组合数
題目:求1到p(p<10)個(gè)數(shù)中取k(1
樣例輸入:3 2
樣例輸出:[1,2],
[1,3],
[2,1],
[2,3],
[3,1],
[3,2],
方法:回溯+深度優(yōu)先搜索
class Solution:
def numofSum3(self,candidates, target)->int:
#回溯組合
result=[]
tmp=[]
candidates.sort()
visited = [0] * len(candidates)
self.dfs(result,tmp,candidates,target,visited)
for i in result:
print(i)
def dfs(self,result:list,tmp:list,candidates:list,target,visited:list):
if len(tmp)==target:
result.append(list(tmp))
return
for i in range(len(candidates)):
if not visited[i]:
tmp.append(candidates[i])
visited[i] = 1
self.dfs(result,tmp,candidates,target,visited)
visited[i] = 0
tmp.pop()
obj=Solution()
a = [1,2,3]
target = 2
obj.numofSum3(a,target)
本文地址:https://blog.csdn.net/broccoli2/article/details/108262562
希望與廣大網(wǎng)友互動(dòng)??
點(diǎn)此進(jìn)行留言吧!
總結(jié)
以上是生活随笔為你收集整理的求组合数python_给定一个序列求指定位数的排列组合数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python3框架的rf_pythonR
- 下一篇: python的模块和类_Python模块