Great explanation! I don't even go through the discuss section if NeetCode's video is available.
@mengjiasings12783 жыл бұрын
Thanks for your work! I am trying to develop a habit of watching your video everyday before bed.
@priyanshu7153 жыл бұрын
after bed will give you better result
@katrinak34692 жыл бұрын
Best explanations out there. Your videos are so succinct and well explained that I can understand any problem in about ten minutes! Got a KZbin account just so I could subscribe and support the channel as a thank you! So thank you!!
@gary-williams7 ай бұрын
The division and modulus can be replaced with subtraction: for sym, val in reversed(symList): while num >= val: res += sym num -= val This won't perform any different (although there will be 3x as many string concatenations in the worst case (e.g., num=3333) ), but it's conceptually slightly simpler.
@andresbonelli5 ай бұрын
Cool explanation! Another possible solution: def intToRoman(self, num: int) -> str: symList = [...] # (Your symbols list) # Roman zero does not exist if num
@balu456534 ай бұрын
it works fine bro
@RichardSmith-os2hk2 күн бұрын
STOP ITTTTTTTTTTTTTTTTTTTTTTTTTT I WANTED TO SOLVE IT NUMBNUTS
@self-learning18242 жыл бұрын
Thanks for the great explaination! Just a quick ques: Why did you use list instead if hashmap? I have an idea still wanted some clarification if what I thinking is right.
@jpkeys6000 Жыл бұрын
Because you need to iterate in order. A dictionary key-value pair has no order.
@Mis_guidedz10 ай бұрын
@@jpkeys6000they do in python …
@arunks49183 жыл бұрын
Best in youtube. To the point, short but complete 👍
@parkboy9 ай бұрын
As of Python 3.7 hashmap (dict) preserves insertion order so you don't need to use a list.
@rpgiri2002Ай бұрын
Thanks dude. Your simple explanation is superb.
@052dhirojkumarsahu9 Жыл бұрын
how to handle 400 , the output is "CCCC" but expected is "CD". I think To handle the case of 400, we need to add an additional condition to check if the num is equal to the current val. If that condition is true, we can directly append the symbol and subtract the value from num. This will ensure the code correctly handles cases requiring subtractive notation.
@animeshsingh429011 ай бұрын
It's already in the list of our conditions
@adventurer2395 Жыл бұрын
Your explanations are excellent! After watching many of your videos, one suggestions I would make is better variable naming for clarity. Your variable names tend too be too concise and generic/unclear. In this video for example, "sym, val" would be clearer as "roman, decimal". I see you also use "res" a lot in many of your videos. Sometimes, I have to re-read the code a few times to keep track of what the variables mean. Other than that, awesome, and thank you so much for helping us!
@travelnlearn Жыл бұрын
You explained it like a peice of a cake
@safwan13409 ай бұрын
Is it not mandatory to give an (!= 0) in the if statement?
@nehascorpion Жыл бұрын
Woah! That was an outstanding explanation. Extremely clear and concise. Thanks a ton!
@jpkeys6000 Жыл бұрын
The only thing I can say is: Thank you, thank you, thank you!!!
@ayonnnnnnn3 ай бұрын
u made it so easy man thanks
@athangkulkarni824511 ай бұрын
Can we use LinkedHashMap and iterate through it? Complexity to retrieve an element would be reduced
@parkboy9 ай бұрын
Yes you can and as of Python 3.7 the hashmap preserves insertion order.
@MideStudio Жыл бұрын
Thank you a lot, from France !
@LordKing133 жыл бұрын
like+subscribed! thx for the help! I m learning a lot with your channel bro!
@imomuganda2 жыл бұрын
Simple and brilliant.
@maxrivera3275 Жыл бұрын
Hermosa solución. Simple y efectiva.
@aaryandubey690611 ай бұрын
Good Explanation
@johnniegilkerson47244 ай бұрын
ok how do you run it with no main?
@ISHSACHDEVA-i9rАй бұрын
Stop the iteration if num==0: if num==0: return res
@DatascienceConcepts3 жыл бұрын
Such a clear explanation!
@Technical-zero5 ай бұрын
thank you for your help😀
@69savage753 жыл бұрын
Good video sir.
@ivanleon6164 Жыл бұрын
I have a different solución, but tours is good to me too.
@oyeshetty2 жыл бұрын
What about the number 1000 , it shows CDCDXCXCXX instead of M which is already in the array
@Dhanushh2 жыл бұрын
1000 / 1000 gives count 1. which then multiplied with M gives you M alone. Then num becomes 0 due to mod operation. loop breaks
@איתיבןחיים-ט6מ2 жыл бұрын
What about the number 8? In roman numerals its VIII, but if I'm not mistaken according to this code it'd be IVIV
@OGRfilms2 жыл бұрын
Remember that we iterate through the table in reverse order. 8 would first be divided by 5, which would be divisible once (integer division), so count would be 1 for 5 and we would add 'V' and then mod by 5 to get 3, which would then be divided by 1, producing a count of 3 and adding 'I' 3 times
@איתיבןחיים-ט6מ2 жыл бұрын
@@OGRfilms oh got it, thank you
@arsenearteta3 ай бұрын
Here's how I did it if anyone wants an alternate solution: class Solution(object): def intToRoman(self, num): integers=[1000,900,500,400,100,90,50,40,10,9,5,4,1] roman=['M','CM','D','CD','C','XC','L','XL','X','IX','V','IV','I'] rom_val=[] while(num!=0): for i in range(len(integers)): while(num>=integers[i]): rom_val.append(roman[i]) num=num-integers[i] return ''.join(rom_val) or alternatively: class Solution(object): def intToRoman(self, num): integers=[1000,900,500,400,100,90,50,40,10,9,5,4,1] roman=['M','CM','D','CD','C','XC','L','XL','X','IX','V','IV','I'] rom_val=[] i=0 while(num!=0): for i in range(len(integers)): count=num//integers[i] rom_val.append(roman[i]*count) num=num%integers[i] return ''.join(rom_val)
@dannyhd83012 жыл бұрын
absolutely amazing
@chenhaibin20102 жыл бұрын
such an elegant solution
@data_science_uzbekistan7 ай бұрын
thanks for your help for beginners like me 😂
@owenwu7995 Жыл бұрын
This is more math than programming
@LevelUpJourney-d2d2 жыл бұрын
thank you so much
@uqu2002 жыл бұрын
for 1994 it's giving wrong answer
@rajanmaheshwari2 жыл бұрын
No, it gives the right answer i.e "MCMXCIV". However I did in Swift, but the concept is same
@sutriptaroy2 жыл бұрын
Yes, for 1994, it's not working
@abhineetsingh67202 жыл бұрын
it works perfectly , just now submitted it with the same logic
@edwardteach22 жыл бұрын
U a Roman God
@dingus23325 ай бұрын
You could have avoided the complexity of reversing the list , simply making the list reverse from the start
@FaberLSH3 ай бұрын
Awesome!!
@finwwwfinwww46692 жыл бұрын
Am i the only one in 30s and still struggling with such problems :(
@quandingleberry44518 күн бұрын
If num is 8000 wouldn't this give 8 M's?
@JOHNSMITH-ve3rq Жыл бұрын
Why nest these solutions inside a class? Why not just make the scope the py script?
@KeepCoding69 Жыл бұрын
Because u have to submit this code in leetcode by nesting it inside a class. That's how leetcode works
@deadpoet44273 жыл бұрын
Best 👍
@Yo-sb9st2 жыл бұрын
This one was hard
@KTBWorld2 жыл бұрын
I'm pretty sure that line 10 of your code "if num // val:" is unnecessary. In fact, the following few lines don't need to be nested into any conditionals at all; The line is redundant with the following line, since "count" is only going to be altered in cases where "num" is larger than "val" anyway. If you take out the conditional, the code still passes all of LeetCode's tests and accepts the submission as correct. That said, I'm still pretty new to this, so maybe there's another reason here that I'm missing. Would adding that conditional allow the program to run faster, as the processor wouldn't need to run through the following lines for "value" values that aren't going to change the result? LeetCode doesn't give noticeably different CPU usages or speeds for the two different versions of the code, but I can imagine that maybe this is something that would only be an issue in longer and more complex software.
@_Who_u_are6 ай бұрын
how wiukd anyone know that ,he has to make a list for this problem?
@dingus23325 ай бұрын
From Roman to Integer , it was pretty clear , only some cases are not considered , and those could be added here
@lukaszplachecki87233 ай бұрын
🎉
@JashSingh-bv5ge10 ай бұрын
im too dumb to code
@karthick...10 ай бұрын
I hate python bcz i am C++ coder
@firozkamdar67358 ай бұрын
Agreed
@HimanshuKumar_247 ай бұрын
Can someone please type that list of lists for me, I'll Gpay 20 Rs.