Permutations - Leetcode 46 - Python
Vložit
- čas přidán 24. 07. 2024
- 🚀 neetcode.io/ - A better way to prepare for Coding Interviews
🧑💼 LinkedIn: / navdeep-singh-3aaa14161
🐦 Twitter: / neetcode1
⭐ BLIND-75 PLAYLIST: • Two Sum - Leetcode 1 -...
Problem Link: neetcode.io/problems/permutat...
0:00 - Read the problem
0:30 - Drawing Explanation
6:08 - Coding Recursive
9:35 - Coding Iterative
leetcode 46
#neetcode #leetcode #python - Věda a technologie
This is a way better explanation than the old video. I went months with this problem unsolved because I just couldn't understand, but this explanation helped me tremendously. Thanks!
i think the backtracking solution with decision tree is more intuitive. For each recursion call, you can store the number that has already added to the Answer list into the HashSet, and for each recursion call you can skip the number that already in the HashSet
function permute(nums: number[]): number[][] {
const result = []
const dfs = (set: Set, pm: number[]): void => {
if (pm.length === nums.length) {
result.push([...pm])
return
}
for (let i = 0; i < nums.length; i++) {
if (set.has(nums[i])) {
continue
}
pm.push(nums[i])
set.add(nums[i])
dfs(set, pm)
pm.pop()
set.delete(nums[i])
}
}
dfs(new Set(), [])
return result
}
Thank you neetcode for again working on this problem :)
i feel like a time traveler
Morning Neetcode!
Swapping indices method for this question is probably more clear and you should also review Longest Palindromic Substring question. Solutions in the other questions are quite optimal.
Thanks a lot!
hey also do video for cherry pickup 1 and bst to sorted DLL
@NeetcodeIO PLS add a functionality on your site to not show the topics for the questions. want to do them in order without knowing the topic. thanks
I actually just solved the problem yesterday lmao
I live in Russia, a new day has not yet begun, and you are already solving a new problem)
Morning
Is it possible for you to have some sort of poll or something where we could ask for a video solution of a leetcode problem which you haven't already solved. Because there are quite a few problems which don't have a proper solution on CZcams and God knows when they will appear as POTD.
I guess thats what his site is for.
Now Solve 31 Next Permutation
The worst solution I've seen.
anything specific about it that you did not like?
@@NeetCodeIO I tried to understand it but it's really bad when debugging or writing down on paper. Really hard to understand. I found this solution:
def permute(self, nums: List[int]) -> List[List[int]]:
res = []
def backtrack(arr):
if len(arr) == len(nums):
res.append(arr.copy())
return
for i in range(len(nums)):
if nums[i] in arr:
continue
arr.append(nums[i])
backtrack(arr)
arr.pop()
backtrack([])
return res
This I got. If no one supports me and everyone thinks your solution is good. Then I'm wrong.