I have a theory that it's because generating all subsets is an older problem and at that time this was considered hard, but right now the expected difficult level, of easy, medium and hard questions are increasing.
Just build a truth table and you will understand the last solution... this will help in getting why the 50% percent ratio still the same even if we added a number with a one bit in the position we are looking at....
How can I handle nervousness and anxiety during an interview? I messed up my last interview due to this, even though the questions that were asked weren't that difficult.
I have very limited interview experience, but I'd suggest mock interviews, talking out your solution while you are doing Leetcode problems on your own. And only start coding once you have an algo, or solution. I like to write out the inputs, output requested, what my solution is, and before I start coding, I'll comment the whole solution out (pseudocode), then it's just a matter of writing the code under said comments. In cross country running circles there's a quote "the hay is in the barn", which basically means you worked your ass off, you just need to trust in the training, and perform. Edit: also work on asking interviewers clarifying questions, even if it seems obvious, or trivial, and always go for the naive solution first, unless the more optimal solution comes to you right away, but I'd also explain that to them "the brute force is", but "I believe because of" "this approach will be better". It's all about communicating your intent. Also, it might be beneficial to mention the time/space complexity with your solution.
Just practice. Most of us have been there. Apply for jobs that you don't care about getting. Ask a friend to do a mock with you (but provide them the q without knowing the solution- I have asked people in the past and they have tried 'making up' questions, and ended up asking something that goes beyond hard, lol).
Thank you neetcode, was able to come up with first solution. was wondering any trick to introduce caching but since there are 2^n different possibilities so caching won't be helpful but still i have this doubt in my mind, is there any way we can introduce caching?
Wow, it's crazy huh. I couldn't believe it the problem is an easy problem. it's worth it solving the problem though, I think that would be enough knowing how to work the recursive solution. var subsetXORSum = function(nums) { let answer = 0; const b = (initialNums, choices) => { let xor = 0; for (let i = 0; i < initialNums.length; i++) { xor ^= initialNums[i]; } answer += xor; while (choices.length > 0) { b(initialNums.concat(choices.shift()), [...choices]); } } b([],nums); return answer; }; This is my solution, which is less efficient than the solution shown up in this video. It get rid of an element from the list the func gets then will pass the new array. I think the solution you introduced in the video has a point to understand how recursive works. Thanks for the video! 👍 --- ps I think why it's a bit hard to understand the solution is because the concept of passing by value, the total. In the case where nums is [5, 1, 6]. dfs(i + 1, total ^ nums[i]) i == 4 -> returns 0 0 ^ 6 + 0 ^ 1 + 0 ^ 5 + 0 (0 ^ 1) + (0 ^ 1) ^ 6 + 0 (0 ^ 5) + (0 ^ 5) ^ 1 + (0 ^ 5) ^ 6 + 0 (0 ^ 5 ^ 1) + 0
I (somehow) managed to deduce the mathematical OR solution by myself without seeing it, and I gotta say, I'm pretty damn proud of myself
How could this possibly be an easy problem when generating all subsets is a medium backtracking problem in itself 🤣
cry
Yeah good point
@@tommyshelby6277 you need not be rude, just because you are better
yeah, right, it's an easy problem for only those, who knows subset problem.
I have a theory that it's because generating all subsets is an older problem and at that time this was considered hard, but right now the expected difficult level, of easy, medium and hard questions are increasing.
Thank you for making this! Super helpful as these problems are quite tricky and I want to start leetcoding a bit every day.
the person who assigns difficulty level on leetcoode is probably high all the time.
This is a cool problem and solution!
You have a small calculation error around 14:39, it should be 28 like you calculated right after.
Just build a truth table and you will understand the last solution... this will help in getting why the 50% percent ratio still the same even if we added a number with a one bit in the position we are looking at....
Explaination was nice
Wow, Amazingly explained!!
Great explanation. Thank you
Awesome explanation
hence subscribed to your channel
How can I handle nervousness and anxiety during an interview? I messed up my last interview due to this, even though the questions that were asked weren't that difficult.
I have very limited interview experience, but I'd suggest mock interviews, talking out your solution while you are doing Leetcode problems on your own. And only start coding once you have an algo, or solution. I like to write out the inputs, output requested, what my solution is, and before I start coding, I'll comment the whole solution out (pseudocode), then it's just a matter of writing the code under said comments. In cross country running circles there's a quote "the hay is in the barn", which basically means you worked your ass off, you just need to trust in the training, and perform. Edit: also work on asking interviewers clarifying questions, even if it seems obvious, or trivial, and always go for the naive solution first, unless the more optimal solution comes to you right away, but I'd also explain that to them "the brute force is", but "I believe because of" "this approach will be better". It's all about communicating your intent. Also, it might be beneficial to mention the time/space complexity with your solution.
Best
Just practice. Most of us have been there. Apply for jobs that you don't care about getting. Ask a friend to do a mock with you (but provide them the q without knowing the solution- I have asked people in the past and they have tried 'making up' questions, and ended up asking something that goes beyond hard, lol).
Thank you so much
Thank you neetcode, was able to come up with first solution. was wondering any trick to introduce caching but since there are 2^n different possibilities so caching won't be helpful but still i have this doubt in my mind, is there any way we can introduce caching?
ngl but this bit manipulation method was pretty damn "creative"
Wow, it's crazy huh. I couldn't believe it the problem is an easy problem. it's worth it solving the problem though, I think that would be enough knowing how to work the recursive solution.
var subsetXORSum = function(nums) {
let answer = 0;
const b = (initialNums, choices) => {
let xor = 0;
for (let i = 0; i < initialNums.length; i++) {
xor ^= initialNums[i];
}
answer += xor;
while (choices.length > 0) {
b(initialNums.concat(choices.shift()), [...choices]);
}
}
b([],nums);
return answer;
};
This is my solution, which is less efficient than the solution shown up in this video. It get rid of an element from the list the func gets then will pass the new array.
I think the solution you introduced in the video has a point to understand how recursive works. Thanks for the video! 👍
--- ps
I think why it's a bit hard to understand the solution is because the concept of passing by value, the total.
In the case where nums is [5, 1, 6].
dfs(i + 1, total ^ nums[i])
i == 4 -> returns 0
0 ^ 6 + 0 ^ 1 + 0 ^ 5 + 0
(0 ^ 1) + (0 ^ 1) ^ 6 + 0
(0 ^ 5) + (0 ^ 5) ^ 1 + (0 ^ 5) ^ 6 + 0
(0 ^ 5 ^ 1) + 0
I'm bad at math and bad at bit manipulation, now lc are fusing both with these questions.
Why did we not use memoisation in the backtracking solution ?
there's not necessarily any repeated sub problems, every subset could be different
yo bro thx
will you have any promotions for the pro course for memorial day? struggling wannabe engineer here.
me findind difficult to understand O(2^n) itself 😭
Why does the LeetCode logo look like a fancy way to pick a toothpick?
Have you ever worked with AI project in big tech yet?
The optimal solution is 👻👻👻
Correction- we hate math AND bit manipulation!
I am too dumb for coding
i did NOT understand this its ok tho who would expect you to come up with this
Let’s goooo 🫡