Sum of Square Numbers - Leetcode 633 - Python

Поділитися
Вставка
  • Опубліковано 24 гру 2024

КОМЕНТАРІ • 35

  • @AnordinaryMan007
    @AnordinaryMan007 6 місяців тому +30

    I think 9 should also be true as 3^2 + 0^2 is 9.

  • @MykolaPavluchynskyi
    @MykolaPavluchynskyi 6 місяців тому +1

    One optimization can be also to track not only start/end but also power of start/power of end. So we don't need to recalculate power of start when we change end, or recalculate power of end when we change start. So save one multiplication on each iteration. Still constant space but saving on each iteration.

  • @dhaanaanjaay
    @dhaanaanjaay 6 місяців тому +1

    I came up with similar solution but my mistake was that I initialized r with c instead of sqrt of c, which got me into TLE.

  • @asagiai4965
    @asagiai4965 6 місяців тому

    I haven't seen his solution (I think it is good or ok)
    My solutions are either.
    A.) Uses some sort of Binary Search.
    Like starting min is 0 to max c.
    B.) Uses sliding window?
    I think there's a lot of solutions to this problem. And should be interesting.

  • @galkk3
    @galkk3 6 місяців тому

    my solution, like your first one but with O(1) SC:
    if c == 0: return True
    for a in range(ceil(sqrt(c))):
    b = sqrt(c - a * a)
    if b % floor(b) == 0:
    return True
    return False

  • @7oeseven793
    @7oeseven793 6 місяців тому +6

    W title

  • @mohanedomer9081
    @mohanedomer9081 6 місяців тому +1

    I was waiting for this one

  • @jersefrenzer1265
    @jersefrenzer1265 6 місяців тому

    The prime divisors of the squarefree part of c must all be 1 mod 4.
    If c is 3 mod 4, you can automatically rule it out.
    9 evaluates to true by the way since 3^2+0^2=9.

  • @Karan-gh9ki
    @Karan-gh9ki 6 місяців тому

    we do not allow 2 same integers (0:39) technically
    for 8 it is not 2 and 2, it is 2 and -2. We are squarring the numbers so obviously there wont be a difference.
    And for 9 it should be true because 3^2 + 0^2 is 9

    • @yang5843
      @yang5843 6 місяців тому

      How about for 0 then?

  • @JamesBond-mq7pd
    @JamesBond-mq7pd 6 місяців тому +1

    Incredible solutioN!

  • @sanchitdeepsingh9663
    @sanchitdeepsingh9663 6 місяців тому +2

    thanks

  • @joydeeprony89
    @joydeeprony89 6 місяців тому +1

    smooth AF

  • @bedokhaled9628
    @bedokhaled9628 6 місяців тому

    Actually we don't really need the Hashset in the first solution, simply check if b is perfect square or not, we can check if a number is perfect square by comparing the floor and ceil of sqrt(number) :
    potential_b = sqrt(c - a^2)
    if floor(potential_b) == ceil(potential_b):
    return True

  • @satyamjha68
    @satyamjha68 6 місяців тому +1

    Solved it!!

  • @hoyinli7462
    @hoyinli7462 6 місяців тому +1

    Good video!
    You can reverse the title of this video so the others can find this video easier

  • @pradeepballa2712
    @pradeepballa2712 6 місяців тому +1

    great solution

  • @inferno4738
    @inferno4738 6 місяців тому +1

    Hey, how do you realize that it's gonna pass the time complexity?
    I saw 2^31 and that's about 10^9
    So I thought it gotta be a O(1) or O(n) solution
    Got stuck there and didn't even think of brute force

  • @optimistcarrot4915
    @optimistcarrot4915 6 місяців тому

    Hi, why do you not make videos about the 2 hard problems they asked yesterday and the day before? Just curious

    • @NeetCodeIO
      @NeetCodeIO  6 місяців тому +2

      I think i already made a video for IPO. For the second one I was out of town unfortunately

  • @zweitekonto9654
    @zweitekonto9654 6 місяців тому +1

    The cooler 2 sum problem.

  • @ngneerin
    @ngneerin 6 місяців тому

    def soluion(c):
    s = set()
    for a in range(int(sqrt(c))+1):
    sqr = a*a
    s.add(sqr)
    if c-sqr in s: return True
    return False

    • @ngneerin
      @ngneerin 6 місяців тому

      Excitedly I added this solution before the video could end, thinking I outsmarted you, until I saw the last solution

  • @asagiai4965
    @asagiai4965 6 місяців тому

    I'm just gonna throw it out there. But
    If A or B is 0 then the other letter must be a perfect square.
    If there is no perfect square then it is false.

  • @chien-yuyeh9386
    @chien-yuyeh9386 6 місяців тому

    🎉🎉

  • @whyredvince
    @whyredvince 6 місяців тому

    What's up with the title?

  • @freecourseplatformenglish2829
    @freecourseplatformenglish2829 6 місяців тому +3

    Dude You are complicating the solution. Below is my solution.
    class Solution:
    def judgeSquareSum(self, c: int) -> bool:
    for a in range(int(c ** 0.5) + 1):
    b = (c - a ** 2) ** 0.5
    if b == int(b):
    return True
    return False

  • @LIGHTsoldier
    @LIGHTsoldier 6 місяців тому

    I think you forgot to change the title before publishing.

  • @Rahul-pr1zr
    @Rahul-pr1zr 6 місяців тому

    Wow, how did I miss ua-cam.com/video/B0UrG_X2faA/v-deo.html!