அல்கோரிதம்backtracking subsets

Generating Subsets using Backtracking — அடிப்படை

TT
Testlaa Team
May 14, 20261 min read

துணைக்கணம் — சேர்/விடு; 2^n இலைகள்.

உண்மை உலகில் இது ஏன் முக்கியம்?

புதிர்; கட்டுப்பாட்டு தீர்வி; நேர்காணல் — நிலை, சுயமுறை, மீளமைப்பு.

மையக் கருத்து (மாணவர்களுக்கான விளக்கம்)

நகல்: வரிசை + அண்டை தவிர்ப்பு.

Pythonில் முயற்சி செய்வோம்

def subsets_dup(nums: list[int]) -> list[list[int]]:
    nums.sort()
    res: list[list[int]] = []

    def dfs(i: int, path: list[int]) -> None:
        if i == len(nums):
            res.append(path.copy())
            return
        path.append(nums[i])
        dfs(i + 1, path)
        path.pop()
        while i + 1 < len(nums) and nums[i + 1] == nums[i]:
            i += 1
        dfs(i + 1, path)

    dfs(0, [])
    return res


print(subsets_dup([1, 2, 2]))

பொதுவான தவறுகள்

  • கூடுதல் வெற்று துணைக்கணம்.
  • முடிவு நகல்.

முக்கிய பாடங்கள்

  • DFS நேர்காணல் தெளிவு.
  • path.copy().

Tags:

Recursion & backtrackingPythonமாணவர்கள்