求组合数python_给定一个序列求指定位数的排列组合数
題目:求1到p(p<10)個數中取k(1
樣例輸入:3 2
樣例輸出:[1,2],
[1,3],
[2,1],
[2,3],
[3,1],
[3,2],
方法:回溯+深度優先搜索
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
希望與廣大網友互動??
點此進行留言吧!
總結
以上是生活随笔為你收集整理的求组合数python_给定一个序列求指定位数的排列组合数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python3框架的rf_pythonR
- 下一篇: dispatch作用 react_「Re