在做Leetcode的第39題的時候,看到網上一個用遞歸的解法,很簡潔。于是重寫了一遍。
網站建設哪家好,找成都創新互聯!專注于網頁設計、網站建設、微信開發、微信小程序、集團企業網站建設等服務項目。為回饋新老客戶創新互聯還提供了保山免費建站歡迎大家使用!class Solution(object): def combinationSum(self, candidates, target): """ :type candidates: List[int] :type target: int :rtype: List[List[int]] """ result,temp = [],[] self.combinationSumRecu(sorted(candidates),result,0,temp,target) return result def combinationSumRecu(self, candidates, result, start, temp, target): if target == 0: result.append(temp) # 注意此處不能直接append(temp),否則是淺拷貝,之后temp.pop()時會將result中的數也pop出來 while start < len(candidates) and candidates[start]<=target: temp.append(candidates[start]) self.combinationSumRecu(candidates, result, start, temp,target-candidates[start]) temp.pop() start += 1 if __name__ == '__main__': print Solution().combinationSum([2,3,6,7],7)
文章標題:對pythonappend與淺拷貝的實例講解-創新互聯
URL鏈接:http://vcdvsql.cn/article20/diopjo.html
成都網站建設公司_創新互聯,為您提供微信公眾號、動態網站、品牌網站建設、自適應網站、全網營銷推廣、電子商務
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯