Sum of All Subsets XOR Total - Leetcode 1863 - Python

Поделиться
HTML-код
  • Опубликовано: 26 ноя 2024

Комментарии • 40

  • @grantpeterson2524
    @grantpeterson2524 6 месяцев назад +14

    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

  • @lexkilpatrick3441
    @lexkilpatrick3441 6 месяцев назад +52

    How could this possibly be an easy problem when generating all subsets is a medium backtracking problem in itself 🤣

    • @tommyshelby6277
      @tommyshelby6277 6 месяцев назад +2

      cry

    • @NeetCodeIO
      @NeetCodeIO  6 месяцев назад +31

      Yeah good point

    • @krateskim4169
      @krateskim4169 6 месяцев назад +22

      @@tommyshelby6277 you need not be rude, just because you are better

    • @nirmalgurjar8181
      @nirmalgurjar8181 6 месяцев назад +6

      yeah, right, it's an easy problem for only those, who knows subset problem.

    • @EduarteBDO
      @EduarteBDO 6 месяцев назад

      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.

  • @DanielGarza27
    @DanielGarza27 6 месяцев назад +1

    Thank you for making this! Super helpful as these problems are quite tricky and I want to start leetcoding a bit every day.

  • @ritikaagrawal769
    @ritikaagrawal769 6 месяцев назад +11

    the person who assigns difficulty level on leetcoode is probably high all the time.

  • @leo8755
    @leo8755 4 месяца назад +1

    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.

  • @deadlyecho
    @deadlyecho 6 месяцев назад +1

    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....

  • @AGENT-gw4vd
    @AGENT-gw4vd 6 месяцев назад +2

    Explaination was nice

  • @m.kamalali
    @m.kamalali 6 месяцев назад

    Wow, Amazingly explained!!

  • @MP-ny3ep
    @MP-ny3ep 6 месяцев назад

    Great explanation. Thank you

  • @SC2Edu
    @SC2Edu 6 месяцев назад

    Awesome explanation

  • @Komedy1Reels
    @Komedy1Reels 6 месяцев назад

    hence subscribed to your channel

  • @RahulJain-kk5no
    @RahulJain-kk5no 6 месяцев назад +3

    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.

    • @juanmacias5922
      @juanmacias5922 6 месяцев назад +3

      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.

    • @anonymous10906
      @anonymous10906 6 месяцев назад

      Best

    • @sophiophile
      @sophiophile 6 месяцев назад +1

      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).

  • @krateskim4169
    @krateskim4169 6 месяцев назад

    Thank you so much

  • @nirmalgurjar8181
    @nirmalgurjar8181 6 месяцев назад

    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?

  • @michael._.
    @michael._. 6 месяцев назад +4

    ngl but this bit manipulation method was pretty damn "creative"

  • @licokr
    @licokr 6 месяцев назад

    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

  • @EduarteBDO
    @EduarteBDO 6 месяцев назад

    I'm bad at math and bad at bit manipulation, now lc are fusing both with these questions.

  • @ish90917
    @ish90917 6 месяцев назад +1

    Why did we not use memoisation in the backtracking solution ?

    • @NeetCodeIO
      @NeetCodeIO  6 месяцев назад +3

      there's not necessarily any repeated sub problems, every subset could be different

  • @mohanedomer9081
    @mohanedomer9081 6 месяцев назад +1

    yo bro thx

  • @koreandude
    @koreandude 6 месяцев назад

    will you have any promotions for the pro course for memorial day? struggling wannabe engineer here.

  • @MohanRam-mq2pk
    @MohanRam-mq2pk 6 месяцев назад +1

    me findind difficult to understand O(2^n) itself 😭

  • @brenocabral5924
    @brenocabral5924 6 месяцев назад

    Why does the LeetCode logo look like a fancy way to pick a toothpick?

  • @rgolanng
    @rgolanng 6 месяцев назад

    Have you ever worked with AI project in big tech yet?

  • @freykong
    @freykong 5 месяцев назад

    The optimal solution is 👻👻👻

  • @deathbombs
    @deathbombs 6 месяцев назад

    Correction- we hate math AND bit manipulation!

  • @MichaBalcerak
    @MichaBalcerak 6 месяцев назад

    I am too dumb for coding

  • @pastori2672
    @pastori2672 6 месяцев назад

    i did NOT understand this its ok tho who would expect you to come up with this

  • @chien-yuyeh9386
    @chien-yuyeh9386 6 месяцев назад +2

    Let’s goooo 🫡