Week 06 - Intervals + Backtracking (Guide)
Reference extracted from the detailed guide.
Intervals
| # | LeetCode | Problem Name | Difficulty | Video Solution |
|---|---|---|---|---|
| 1 | LC #57 | Insert Interval Intervals | Medium | https://www.youtube.com/watch?v=A8NUOmlwOlM |
| 2 | LC #56 | Merge Intervals Intervals | Medium | https://www.youtube.com/watch?v=44H3cEC2fFM |
| 3 | LC #435 | Non-overlapping Intervals Intervals | Medium | https://www.youtube.com/watch?v=nONCGxWoUfM |
| 4 | LC #252 | Meeting Rooms Intervals | Easy | https://www.youtube.com/watch?v=PaJxqZVPhbg |
| 5 | LC #253 | Meeting Rooms II Intervals | Medium | https://www.youtube.com/watch?v=FdzJmTCVyJU |
Backtracking
Watch First:
- NeetCode: Backtracking → https://www.youtube.com/watch?v=pfiQ_PS1g8E
| # | LeetCode | Problem Name | Difficulty | Video Solution |
|---|---|---|---|---|
| 1 | LC #78 | Subsets Backtracking | Medium | https://www.youtube.com/watch?v=REOH22Xwdkk |
| 2 | LC #90 | Subsets II Backtracking | Medium | https://www.youtube.com/watch?v=Vn2v6ajA7U0 |
| 3 | LC #46 | Permutations Backtracking | Medium | https://www.youtube.com/watch?v=s7AvT7cGdSo |
| 4 | LC #39 | Combination Sum Backtracking | Medium | https://www.youtube.com/watch?v=GBKI9VSKdGg |
| 5 | LC #40 | Combination Sum II Backtracking | Medium | https://www.youtube.com/watch?v=rSA3t6BDDwg |
| 6 | LC #79 | Word Search Backtracking | Medium | https://www.youtube.com/watch?v=pfiQ_PS1g8E |
| 7 | LC #131 | Palindrome Partitioning Backtracking | Medium | https://www.youtube.com/watch?v=3jvWodd7ht0 |
| 8 | LC #51 | N-Queens Backtracking | Hard | https://www.youtube.com/watch?v=Ph95IHmRp5M |
Template: Backtracking
def subsets(nums):
result = []
def backtrack(start, path):
result.append(path[:]) # add copy
for i in range(start, len(nums)):
path.append(nums[i])
backtrack(i + 1, path)
path.pop()
backtrack(0, [])
return result
def permute(nums):
result = []
def backtrack(path, used):
if len(path) == len(nums):
result.append(path[:])
return
for i in range(len(nums)):
if used[i]:
continue
used[i] = True
path.append(nums[i])
backtrack(path, used)
path.pop()
used[i] = False
backtrack([], [False] * len(nums))
return result
Comments
Share your approach or ask questions
?
|
Markdown supported
Sign in to post
Loading comments...