簡體   English   中英

回溯:如何更改以下代碼

[英]backtrack: How can I change the following code

如何更改以下代碼,以便不必將 set1 和 set2 傳遞給 function?

此 function 查找是否可以將數組划分為兩個子集,使得兩個子集中的元素之和相等。

def canPartition(self, nums: List[int]) -> bool:
        def backtrack(i, set1, set2):
            if i == len(nums):
                if set1 == set2:
                    return True
                else:
                    return False
            
            path1 = backtrack(i+1, set1 + nums[i], set2)
            path2 = backtrack(i+1, set1, set2 + nums[i])
            return path1 or path2
            
        return backtrack(0, 0, 0)

我假設您的意思是“在原始通話中”。 只需使用默認參數。

def canPartition(self, nums: List[int]) -> bool:
    def backtrack(i, set1=0, set2=0):
        if i == len(nums):
            return set1 == set2
        
        path1 = backtrack(i+1, set1 + nums[i], set2)
        path2 = backtrack(i+1, set1, set2 + nums[i])
        return path1 or path2
            
    return backtrack(0)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM