日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

动态规划,分治,回溯法,全排列,切片

發(fā)布時(shí)間:2024/9/15 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 动态规划,分治,回溯法,全排列,切片 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

全排列問題,可以從動(dòng)態(tài)規(guī)劃狀態(tài)方程考慮,也可以從回溯法考慮,二者代碼遞歸形式的代碼是一致的,但是理解的角度不同

動(dòng)態(tài)規(guī)劃:

# 基于動(dòng)態(tài)規(guī)劃,狀態(tài)方程考慮,f[n] = 首位為所有元素 + f[n-1],這個(gè)動(dòng)態(tài)規(guī)劃沒有重復(fù) # 子問題,每一種情況都需要遍歷 class Solution2:def permute(self, nums):""":type nums: List[int]:rtype: List[List[int]]"""result =[]end = len(nums)def permute_recursion(nums,start):# 遞歸的出口,就是只剩一個(gè)元素時(shí)if start == end-1:result.append(nums[:])# 把每一個(gè)元素放在首位,其他的做全排列for i in range(start,end):nums[i],nums[start] = nums[start],nums[i]permute_recursion(nums,start+1)nums[i],nums[start] = nums[start],nums[i]return resultreturn permute_recursion(nums,0)

回溯法,全排列的回溯法:

# 注意python復(fù)制數(shù)組注意使用切片 # 基于回溯法考慮 class Solution:def permute(self, nums):""":type nums: List[int]:rtype: List[List[int]]"""result =[]num = len(nums)def backtracking(depth,nums):if depth == num-1:result.append(nums[:])else:for i in range(depth,num):nums[i],nums[depth] = nums[depth],nums[i]backtracking(depth+1,nums)nums[i],nums[depth] = nums[depth],nums[i]return resultreturn backtracking(0,nums)

注意python復(fù)制數(shù)組注意使用切片,如果是復(fù)制數(shù)據(jù),或者把數(shù)據(jù)加入到一個(gè)列表里,千萬要使用切片,不要使用其名稱,python里名稱是指針,后續(xù)數(shù)據(jù)變化了,列表里面的數(shù)據(jù)也會(huì)變化。

與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的动态规划,分治,回溯法,全排列,切片的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。