Integer to Roman - Leetcode 12 - Python

  Рет қаралды 67,241

NeetCode

NeetCode

Күн бұрын

🚀 neetcode.io/ - A better way to prepare for Coding Interviews
🐦 Twitter: / neetcode1
🥷 Discord: / discord
🐮 Support the channel: / neetcode
⭐ BLIND-75 PLAYLIST: • Two Sum - Leetcode 1 -...
💡 CODING SOLUTIONS: • Coding Interview Solut...
💡 DYNAMIC PROGRAMMING PLAYLIST: • House Robber - Leetco...
🌲 TREE PLAYLIST: • Invert Binary Tree - D...
💡 GRAPH PLAYLIST: • Course Schedule - Grap...
💡 BACKTRACKING PLAYLIST: • Word Search - Backtrac...
💡 LINKED LIST PLAYLIST: • Reverse Linked List - ...
💡 BINARY SEARCH PLAYLIST: • Binary Search
📚 STACK PLAYLIST: • Stack Problems
Problem Link: leetcode.com/problems/integer...
0:00 - Read the problem
1:40 - Drawing Explanation
6:25 - Coding Explanation
leetcode 12
This question was identified as an amazon interview question from here: github.com/xizhengszhang/Leet...
#amazon #interview #python
Disclosure: Some of the links above may be affiliate links, from which I may earn a small commission.

Пікірлер: 66
@aryanyadav3926
@aryanyadav3926 2 жыл бұрын
Great explanation! I don't even go through the discuss section if NeetCode's video is available.
@katrinak3469
@katrinak3469 2 жыл бұрын
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!!
@arunks4918
@arunks4918 2 жыл бұрын
Best in youtube. To the point, short but complete 👍
@nehascorpion
@nehascorpion Жыл бұрын
Woah! That was an outstanding explanation. Extremely clear and concise. Thanks a ton!
@mengjiasings1278
@mengjiasings1278 2 жыл бұрын
Thanks for your work! I am trying to develop a habit of watching your video everyday before bed.
@priyanshu715
@priyanshu715 2 жыл бұрын
after bed will give you better result
@LordKing13
@LordKing13 2 жыл бұрын
like+subscribed! thx for the help! I m learning a lot with your channel bro!
@DatascienceConcepts
@DatascienceConcepts 2 жыл бұрын
Such a clear explanation!
@MideStudio
@MideStudio Жыл бұрын
Thank you a lot, from France !
@imomuganda
@imomuganda Жыл бұрын
Simple and brilliant.
@andresbonelli
@andresbonelli 2 ай бұрын
Cool explanation! Another possible solution: def intToRoman(self, num: int) -> str: symList = [...] # (Your symbols list) # Roman zero does not exist if num
@balu45653
@balu45653 Ай бұрын
it works fine bro
@maxrivera3275
@maxrivera3275 Жыл бұрын
Hermosa solución. Simple y efectiva.
@jpkeys6000
@jpkeys6000 Жыл бұрын
The only thing I can say is: Thank you, thank you, thank you!!!
@parkboy
@parkboy 6 ай бұрын
As of Python 3.7 hashmap (dict) preserves insertion order so you don't need to use a list.
@adventurer2395
@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
@travelnlearn Жыл бұрын
You explained it like a peice of a cake
@Technical-zero
@Technical-zero 2 ай бұрын
thank you for your help😀
@dannyhd8301
@dannyhd8301 Жыл бұрын
absolutely amazing
@69savage75
@69savage75 2 жыл бұрын
Good video sir.
@self-learning1824
@self-learning1824 2 жыл бұрын
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
@jpkeys6000 Жыл бұрын
Because you need to iterate in order. A dictionary key-value pair has no order.
@Mis_guidedz
@Mis_guidedz 7 ай бұрын
@@jpkeys6000they do in python …
@chenhaibin2010
@chenhaibin2010 2 жыл бұрын
such an elegant solution
@gary-williams
@gary-williams 4 ай бұрын
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.
@FaberLSH
@FaberLSH 14 күн бұрын
Awesome!!
@aaryandubey6906
@aaryandubey6906 8 ай бұрын
Good Explanation
@nbavideos4487
@nbavideos4487 2 жыл бұрын
thank you so much
@052dhirojkumarsahu9
@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.
@animeshsingh4290
@animeshsingh4290 8 ай бұрын
It's already in the list of our conditions
@safwan1340
@safwan1340 6 ай бұрын
Is it not mandatory to give an (!= 0) in the if statement?
@deadpoet4427
@deadpoet4427 2 жыл бұрын
Best 👍
@data_science_uzbekistan
@data_science_uzbekistan 4 ай бұрын
thanks for your help for beginners like me 😂
@edwardteach2
@edwardteach2 2 жыл бұрын
U a Roman God
@ivanleon6164
@ivanleon6164 11 ай бұрын
I have a different solución, but tours is good to me too.
@johnniegilkerson4724
@johnniegilkerson4724 Ай бұрын
ok how do you run it with no main?
@owenwu7995
@owenwu7995 11 ай бұрын
This is more math than programming
@athangkulkarni8245
@athangkulkarni8245 8 ай бұрын
Can we use LinkedHashMap and iterate through it? Complexity to retrieve an element would be reduced
@parkboy
@parkboy 6 ай бұрын
Yes you can and as of Python 3.7 the hashmap preserves insertion order.
@oyeshetty
@oyeshetty 2 жыл бұрын
What about the number 1000 , it shows CDCDXCXCXX instead of M which is already in the array
@Dhanushh
@Dhanushh 2 жыл бұрын
1000 / 1000 gives count 1. which then multiplied with M gives you M alone. Then num becomes 0 due to mod operation. loop breaks
@user-mc8kz7md4o
@user-mc8kz7md4o 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
@OGRfilms
@OGRfilms 2 жыл бұрын
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
@user-mc8kz7md4o
@user-mc8kz7md4o 2 жыл бұрын
@@OGRfilms oh got it, thank you
@Yo-sb9st
@Yo-sb9st Жыл бұрын
This one was hard
@lukaszplachecki8723
@lukaszplachecki8723 6 күн бұрын
🎉
@KTBWorld
@KTBWorld 2 жыл бұрын
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.
@finwwwfinwww4669
@finwwwfinwww4669 Жыл бұрын
Am i the only one in 30s and still struggling with such problems :(
@uqu200
@uqu200 2 жыл бұрын
for 1994 it's giving wrong answer
@rajanmaheshwari
@rajanmaheshwari 2 жыл бұрын
No, it gives the right answer i.e "MCMXCIV". However I did in Swift, but the concept is same
@sutriptaroy
@sutriptaroy 2 жыл бұрын
Yes, for 1994, it's not working
@abhineetsingh6720
@abhineetsingh6720 2 жыл бұрын
it works perfectly , just now submitted it with the same logic
@dingus2332
@dingus2332 Ай бұрын
You could have avoided the complexity of reversing the list , simply making the list reverse from the start
@_Who_u_are
@_Who_u_are 3 ай бұрын
how wiukd anyone know that ,he has to make a list for this problem?
@dingus2332
@dingus2332 Ай бұрын
From Roman to Integer , it was pretty clear , only some cases are not considered , and those could be added here
@JOHNSMITH-ve3rq
@JOHNSMITH-ve3rq Жыл бұрын
Why nest these solutions inside a class? Why not just make the scope the py script?
@KeepCoding69
@KeepCoding69 Жыл бұрын
Because u have to submit this code in leetcode by nesting it inside a class. That's how leetcode works
@koolkataustin2961
@koolkataustin2961 4 ай бұрын
LOL
@JashSingh-bv5ge
@JashSingh-bv5ge 7 ай бұрын
im too dumb to code
@tsunningwah3471
@tsunningwah3471 Жыл бұрын
sexjhvhj
@HimanshuKumar_24
@HimanshuKumar_24 4 ай бұрын
Can someone please type that list of lists for me, I'll Gpay 20 Rs.
@raghavendras8866
@raghavendras8866 Ай бұрын
Bruh 😂
@karthick...
@karthick... 7 ай бұрын
I hate python bcz i am C++ coder
@firozkamdar6735
@firozkamdar6735 5 ай бұрын
Agreed
@arsenearteta
@arsenearteta 11 күн бұрын
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)
ZigZag Conversion - Leetcode 6 - Python
12:46
NeetCode
Рет қаралды 95 М.
Integer to Roman | Leetcode #12
17:34
Techdose
Рет қаралды 38 М.
Schoolboy - Часть 2
00:12
⚡️КАН АНДРЕЙ⚡️
Рет қаралды 4,9 МЛН
Llegó al techo 😱
00:37
Juan De Dios Pantoja
Рет қаралды 60 МЛН
Doing This Instead Of Studying.. 😳
00:12
Jojo Sim
Рет қаралды 21 МЛН
Reverse Integer - Bit Manipulation - Leetcode 7 - Python
13:12
How I would learn Leetcode if I could start over
18:03
NeetCodeIO
Рет қаралды 402 М.
Please Master These 10 Python Functions…
22:17
Tech With Tim
Рет қаралды 113 М.
Opensource, Uncensored, Unbothered. - Flux.1 Image Gen
18:59
MattVidPro AI
Рет қаралды 2,7 М.
Integer To Roman - 12. LeetCode - C#
8:46
Teddy Smith
Рет қаралды 307
Roman to Integer - Leetcode 13 - Python
7:57
NeetCode
Рет қаралды 163 М.
25 Nooby Pandas Coding Mistakes You Should NEVER make.
11:30
Rob Mulla
Рет қаралды 265 М.
8 patterns to solve 80% Leetcode problems
7:30
Sahil & Sarra
Рет қаралды 290 М.
5 Useful F-String Tricks In Python
10:02
Indently
Рет қаралды 288 М.
Проверил, как вам?
0:58
Коннор
Рет қаралды 363 М.
Todos os modelos de smartphone
0:20
Spider Slack
Рет қаралды 65 МЛН
My iPhone 15 pro max 😱🫣😂
0:21
Nadir Show
Рет қаралды 1,8 МЛН
Частая ошибка геймеров? 😐 Dareu A710X
1:00
Вэйми
Рет қаралды 5 МЛН
Опасность фирменной зарядки Apple
0:57
SuperCrastan
Рет қаралды 12 МЛН
КРУТОЙ ТЕЛЕФОН
0:16
KINO KAIF
Рет қаралды 7 МЛН