Backtracking సమర్థిత సమాధానాలను క్రమంగా నిర్మించి, ఒక పాక్షిక సమర్థితను విస్మరిస్తుంది (దానిని వెనక్కి ఎడೆస్తుంది) అది చెల్లుబాటు అయ్యే సమాధానానికి దారితీయలేని గుర్తించిన వెంటనే. ఇది DFS ద్వారా సమాధాన స్థలాన్ని క్రమబద్ధంగా అన్వేషిస్తుంది, చనిపోయిన ముగ్గులను విద్ధ్వంసం చేస్తుంది.
ఆలోచన
ఎంచుకోండి -> అన్వేషించండి -> అన్డు చేయండి. ఒక ఆప్షన్ ప్రయత్నించండి, పునరావృత్తి చేయండి; అది విఫలమైతే, దాన్ని అన్డు చేసి తర్వాతిది ప్రయత్నించండి.
ఉదాహరణ: అన్ని ప్రస్తారణలు
():
result = []
():
remaining:
result.append(path[:])
i ((remaining)):
path.append(remaining[i])
backtrack(path, remaining[:i] + remaining[i+:])
path.pop()
backtrack([], nums)
result
permutations([, , ])
