LeetCode 14. Longest Common Prefix Solution Explained - Java

  Рет қаралды 109,676

Nick White

Nick White

Күн бұрын

Пікірлер: 155
@atefe3919
@atefe3919 5 жыл бұрын
No one explains solutions better than you, thank you so much for these videos, they are helping me a lot in the process of getting ready for technical interviews!
@NickWhite
@NickWhite 5 жыл бұрын
thanks
@joanmoralesf
@joanmoralesf 2 жыл бұрын
Its insane how short this video is but you explained it better than all the long fancy videos. Thank you
@jay-wf3ft
@jay-wf3ft 4 жыл бұрын
I think it would be great if you would show 2 solutions. One with a slow run time and then the optimal solution such as this. It really helps to understand it even more. Either way awesome video
@pritampadhan5977
@pritampadhan5977 2 жыл бұрын
Above logic takes more time i think
@KhayamGondal
@KhayamGondal 2 жыл бұрын
you can add a check for prefix length ==0 at the end of the while loop. Incase nothing matches with the 2nd string then no need to check with rest of the list. And instead of substringing every itteration you can keep track of right index and only substring when returning the result.
@raghavendrathakur2239
@raghavendrathakur2239 2 жыл бұрын
@vcfirefox
@vcfirefox 3 жыл бұрын
Dude, I am probably much older than you, but goddamn I am LOVING your explanations. Getting a chance to prep my interviews very efficiently!
@bhargavvaddepally3221
@bhargavvaddepally3221 4 жыл бұрын
Damn man that explanation was so smooth
@ananyadutta6358
@ananyadutta6358 3 жыл бұрын
bro your explaining method is quite creative , out of 7 videos based on this that I'd WATCHED , this was the best!
@prajwalshenoy9117
@prajwalshenoy9117 3 жыл бұрын
Nice one. We can have a case inside for loop to break it when prefix length reaches zero to avoid continuing to loop when there's no scope of common prefix further.
@poojaupadhyay6364
@poojaupadhyay6364 4 жыл бұрын
such a clear approach! everytime i do leetcode and feel like wtf about a question ,i come here to watch your tutorial and i understand the solution so clearly! thanks a lot,u have a great help dude!
@suyogsubedi8584
@suyogsubedi8584 3 жыл бұрын
are you a better problem solver by now?
@aadhi_dinesh7668
@aadhi_dinesh7668 2 жыл бұрын
IN PYTHON s=["flow","flew","flower"] k=s[0] flag=0 a="" for x in range(len(k)): for j in s[1:]: if k[x]!=j[x]: flag=1 else: a=""+k[x] if flag==1: break else: print(a,end="")
@satyamgupta6030
@satyamgupta6030 Жыл бұрын
what a solution man thanks alot nick brother please continue making these videos. u r just different when it comes to explaining in most optimised ways.
@sreenidhisreesha
@sreenidhisreesha 2 жыл бұрын
Since indexOf is linear time complexity, Doesnt it make this O(n2) time complexity?
@6066ChetanKhairnar
@6066ChetanKhairnar 3 жыл бұрын
got through 3 different videos for a good solution but nick is one who always gives the best approach , Appreciate bro
@himanshumalik6913
@himanshumalik6913 3 жыл бұрын
You know what, you just explained in a so easier way that no one has explained yet.
@carefree_ladka
@carefree_ladka 2 жыл бұрын
indexOf() takes O(N) time . How is your method linear?
@Noname-di3yz
@Noname-di3yz 2 жыл бұрын
the only thing I don't understand is why we can set the first element as the prefix initially... isn't it possible that there is a different longest prefix? ex/ ["ab", "cd", "cde", "cdef","cdefg"], where if we set the prefix to "ab" wouldn't your solution return "" ?
@syc4654
@syc4654 Жыл бұрын
probably very late but although the problem doesn't mention it specifically,longest common means that the common prefix must be common for all the elements in the array,so yes,"" would be returned and it would be correct,you can test it yourself inputting your string own string in the Testcase section(In the console) and seeing the expected resulted (from a working code) and your result (from your code)
@tanyagoel9140
@tanyagoel9140 4 жыл бұрын
It was so nicely explained. Thanks a lot!
@vicente3j
@vicente3j 2 жыл бұрын
When I search up a leetcode question I always go to Nick White if its available 😂 Great video
@simrankak7045
@simrankak7045 3 жыл бұрын
Why i didnt find your channel until now. Your explaination is crisp clear and very simple thankyou :)
@utkarshsrivastava3114
@utkarshsrivastava3114 Жыл бұрын
What a clean and simple approach
@Ben-pb7ct
@Ben-pb7ct 3 жыл бұрын
Could you explain why the time complexity is O(S), where S is the sum of all characters in all strings?
@hbrymiri8301
@hbrymiri8301 Жыл бұрын
Hands best step by step explanation.
@saradham2844
@saradham2844 3 жыл бұрын
Best solution for this problem . Great approach and clear explanation Thanks !!!
@abdelghafourboufenzi213
@abdelghafourboufenzi213 10 ай бұрын
but this is incorrect in the case of : "abower","flower","flightwer" the result should be "wer" but the result is empty.
@syedrehan3251
@syedrehan3251 9 ай бұрын
Bro prefix means starting of the letter
@brucewayne9444
@brucewayne9444 4 жыл бұрын
Wow man. I could have never thought of approaching this problem this way. Thanks a ton👍
@nurulloabdurakhmanov4914
@nurulloabdurakhmanov4914 2 жыл бұрын
Exactly man. What should we do to get into thinking like these aproaches ?
@ashish4k07
@ashish4k07 Жыл бұрын
I thought of using 1st string in array of string as base and scanned through all others and checked if one by one it matches all other strings if it is then we increment the string and hence getting final lcp ans
@maxstanley1818
@maxstanley1818 3 жыл бұрын
yo but what if the first element in the "fl" prefix array is something like "dog" or something?
@prathamchitransh5338
@prathamchitransh5338 2 жыл бұрын
best explaination for this problem on youtube
@greatred2558
@greatred2558 3 жыл бұрын
thanks, tried many things for c# but kept falling out of bounds. This works and simple to understand
@mohammadosama4709
@mohammadosama4709 4 жыл бұрын
Why do we need substring method we can check character by character vertically? Wouldn't that me more optimal?
@ryan-bo2xi
@ryan-bo2xi 3 жыл бұрын
what is the time complexity ?
@rupaldesai7098
@rupaldesai7098 5 жыл бұрын
the time complexity is? O(n^2)
@NickWhite
@NickWhite 5 жыл бұрын
Nope because we're not looping through the strs array in the inner loop we're popping characters off of one string
@suryaakella4508
@suryaakella4508 4 жыл бұрын
@@NickWhite What if all the elements in the string are same like all flowers than no deletion and the time complexity would be O(n^2)? I think we would have to use trie or suffix array to get O(n)?
@i_deepeshmeena
@i_deepeshmeena 4 жыл бұрын
@@suryaakella4508 it will be still O(NM) where M is the length of the longest string in the array
@jardondiego
@jardondiego 4 жыл бұрын
@@i_deepeshmeena Indeed, time complexity is O(MN) and space complexity is O(M).
@jardondiego
@jardondiego 4 жыл бұрын
Time complexity with a Trie (prefix tree) would be O(M log N) where M is the length of the longest string and N the number of strings, right?
@gayan1742
@gayan1742 3 жыл бұрын
Time complexity of indexOf is O(n) though.
@divyanshuchaudhari5416
@divyanshuchaudhari5416 3 ай бұрын
Great explanation Nick!! Kudos to you.
@kshitijpandey9376
@kshitijpandey9376 3 жыл бұрын
You wrapped that up very smoothly. Thanks Nick🙂.
@abhishekmamgain224
@abhishekmamgain224 2 жыл бұрын
Still you are using While loop and one for-loop. Wouldn't this make the time complexity similar as two for-loops
@mohammadrafi895
@mohammadrafi895 2 жыл бұрын
No, it wouldn't because the inner loop will not depend on the length of input array. Input array could have 100 words but each word can't be longer than 20 characters, on average 5-10.
@Thrallgg
@Thrallgg 3 жыл бұрын
str.indexOf and str.subStr is O(m*n) i think, so I don't think it's optimal.
@tuckerleavitt
@tuckerleavitt 3 жыл бұрын
Yes you're correct, a.indexOf(b) is O(len(a) *len(b)) in the worst case. There is a better solution
@pranaychoubey9706
@pranaychoubey9706 3 жыл бұрын
you can eventually shift to stringbuilder i guess.
@pragatikumarprusty7061
@pragatikumarprusty7061 2 жыл бұрын
If possible, please tell the time and space complexity as well ...
@davidc3268
@davidc3268 3 жыл бұрын
how is a linear solution? theres is a nested while loop inside?
@abhinavs2484
@abhinavs2484 Жыл бұрын
in worst case it is O^n2 right, is there any better solution!
@ashish4k07
@ashish4k07 Жыл бұрын
So can what can be the overall time complexity for this
@headyshotta5777
@headyshotta5777 2 жыл бұрын
Thanks for the explanation. I still don't really understand how your while loop works but I'll keep working to understand.
@sameer9368
@sameer9368 5 жыл бұрын
hello....please do the problem on the merging k- sorted array using heap.
@NickWhite
@NickWhite 5 жыл бұрын
send me a link in discord and i'll check it out
@sameer9368
@sameer9368 5 жыл бұрын
i am solving in eclipse . i have the problem statement. can i share you that problem statement. i dont know the approach how to solve such problem, i am the beginner. also i am unaware of the concept like heap. please do the video on it
@thomasgeorge4578
@thomasgeorge4578 3 жыл бұрын
Man! your explanation is just fire 🔥🔥🔥
@tej3679
@tej3679 2 жыл бұрын
best explanation, you explained clearly kudos
@avinashpatil9662
@avinashpatil9662 2 жыл бұрын
What is the time complexity of this solution?
@gauravmishra8782
@gauravmishra8782 Жыл бұрын
how did you came up with this solution?
@Whaleshamu
@Whaleshamu 5 жыл бұрын
can you make video on Gray code (Leetcode 89)?
@NickWhite
@NickWhite 5 жыл бұрын
I’ll check it out!
@shastriswaroop
@shastriswaroop 4 жыл бұрын
How about setting the prefix as the smallest length string and then starting loop from index 0. For longer string array it will be beneficial?
@dgr8raka470
@dgr8raka470 2 жыл бұрын
I think in place of “indexOf” .. we need to use “startswith” method… tq for the vdo
@velmuruganjeyakumar1746
@velmuruganjeyakumar1746 2 жыл бұрын
Yooo Man , I too had that same feeling
@ehsanhosseini5861
@ehsanhosseini5861 4 жыл бұрын
Thank you for this amazing explanation. What is the time complexity?
@royt6924
@royt6924 3 жыл бұрын
I believe it is O(A*S) where A is the iteration for each element of array, where S for the iteration of string
@invictuswildlife
@invictuswildlife 4 жыл бұрын
Kudos to such a clean explanation ! Thank you.
@balavardhanreddy8581
@balavardhanreddy8581 Жыл бұрын
by watching this video i subscribed ur channel
@flyfly11111
@flyfly11111 2 жыл бұрын
You explained it very nicely. Thank you so much
@makgaboemmanuelmathekga2805
@makgaboemmanuelmathekga2805 Жыл бұрын
the code breaks though, with index out of bound error when there is no common prefix
@TheRishit99
@TheRishit99 2 жыл бұрын
Great explanation. Can solve this with Trie Tree ?
@carefree_ladka
@carefree_ladka 2 жыл бұрын
That's the efficient way to solve this problem
@pjguitar15
@pjguitar15 3 жыл бұрын
I literally got stuck to this problem and I just gave up and went to KZbin lol
@iTzAlwxyss
@iTzAlwxyss 3 жыл бұрын
How does this not work for processing 4 that uses java ?
@amitpadaliya6916
@amitpadaliya6916 5 жыл бұрын
really amazing solution
@swethanooka896
@swethanooka896 2 жыл бұрын
Can anyone explain me the while loop part of the code?
@AlejandroRodriguez-lq9mz
@AlejandroRodriguez-lq9mz 4 жыл бұрын
thanks for sharing such solution, very clear and easy one!
@solomonmokua4643
@solomonmokua4643 2 жыл бұрын
Than you, well explained, was able to implement your solution in Python.
@sarash9607
@sarash9607 2 жыл бұрын
Can anyone tell me why do we set the first string as a prefix ? how do we know it is the longest string and the one that has all the letters that we want ? what if the array was like strs = [ "flight", "flower", "flow"]
@raghavendrathakur2239
@raghavendrathakur2239 2 жыл бұрын
when program runs it finds common between flight and flower first the common is fl and 2nd iteration it will find common between fl and flow so our aim is to find common in strings so what is there in 1st will be in all the strings if not it returns empty string
@rajeevsingh5453
@rajeevsingh5453 4 жыл бұрын
What's the time complexity of this algorithm?
@aryamankukal1056
@aryamankukal1056 3 жыл бұрын
linear
@srijitdebsarma3451
@srijitdebsarma3451 2 жыл бұрын
Best explanation 😍🥰
@thatsenoughdixit
@thatsenoughdixit Жыл бұрын
Very nice. Commenting so I get more videos.
@LeetCodeSimplified
@LeetCodeSimplified 4 жыл бұрын
Great explanation! Thx a lot!!
@ricardosmith5753
@ricardosmith5753 2 жыл бұрын
very clean solution.
@jiangtianfeng5971
@jiangtianfeng5971 4 жыл бұрын
very clear! Thx man
@swagatzeher
@swagatzeher 3 жыл бұрын
Thanks man Nick... you are a pocket sized dynamite ;)
@shivamd23
@shivamd23 3 жыл бұрын
Best Solution 😊👍
@zerosandones7547
@zerosandones7547 2 жыл бұрын
confusion.Cleared(); THANK YOU!
@rohitkushwaha6125
@rohitkushwaha6125 2 жыл бұрын
Thank you so much for the explanation ut was really nice.
@kso3586
@kso3586 Жыл бұрын
Amazing! thank you so much👍
@theolim6994
@theolim6994 Жыл бұрын
Thank you so much for great explanation!!! Helped so much!
@freinheit6923
@freinheit6923 Жыл бұрын
thank you for explaining!
@KIM-ODee
@KIM-ODee 6 ай бұрын
Thanks for your explain!
@adil_k
@adil_k Жыл бұрын
Thanks for this awesome video
@abdulqudusyunus9786
@abdulqudusyunus9786 3 жыл бұрын
Nice explanation
@junkmail1111
@junkmail1111 4 жыл бұрын
What if the first element is not the longest string?
@junkmail1111
@junkmail1111 4 жыл бұрын
Does it not matter because the longest prefix will only be as long as the shortest word? So the length of the starting string doesn’t matter?
@NeeruSinghK
@NeeruSinghK 4 жыл бұрын
great.. nice and easy solution
@Post2prqbu
@Post2prqbu 4 жыл бұрын
wow! elegant solution!
@habibdurodola5728
@habibdurodola5728 3 жыл бұрын
Best solutions , Yes you did !
@vidhi_bhatt
@vidhi_bhatt 2 жыл бұрын
simple and on point!
@DevanshuMevada
@DevanshuMevada 5 жыл бұрын
Thanks Man!
@bty_s
@bty_s 3 жыл бұрын
There is no condition that all array items is started by the same prefix, if this prefix is actually exists. i mean the first ex in the lesson is [flower, flow, flight]. fl - longest common prefix. but in case of [flower, flow, flight, tennis, ten, tenet, tent]. ten - longest common. your solution will not work in such case.
@deepanshuyadav6815
@deepanshuyadav6815 3 жыл бұрын
So how would u do it....
@dannytierney2969
@dannytierney2969 3 жыл бұрын
Your second example has no common prefix, as three of the words do not share the prefix "ten" At least, that is how the question is set up.
@pranjalbansal8576
@pranjalbansal8576 2 жыл бұрын
can anyone explain line no 6
@shanky046
@shanky046 2 жыл бұрын
Read about indexOf(String s) method of String class
@yahyashaikhworld
@yahyashaikhworld 4 жыл бұрын
if prefix becomes " " after the stripping off of characters, why would it be at the index 0 strs[i]. ?
@jay-wf3ft
@jay-wf3ft 4 жыл бұрын
It doesn’t become “ “. It subtracts each letter that isn’t a common prefix from the word “flower” until they all match. Once they match the loops end and you are left with the longest common prefix
@AdryanRMC
@AdryanRMC Жыл бұрын
I feel myself so stupid after watching this
@whiz-code
@whiz-code 5 ай бұрын
You a genius
@ruifan793
@ruifan793 4 жыл бұрын
Help me a lot, thanks
@gokulkumarbhoomibalan5413
@gokulkumarbhoomibalan5413 4 жыл бұрын
Really helpful!
@fahdagodzo5795
@fahdagodzo5795 3 жыл бұрын
This guy is smart
@jasonliu7186
@jasonliu7186 4 жыл бұрын
Thanks very much!
@ayushbudhwani
@ayushbudhwani 4 жыл бұрын
Nailed it!!
@Nick-and-Boys
@Nick-and-Boys 2 жыл бұрын
thanks don
@mohitdangwal587
@mohitdangwal587 2 жыл бұрын
you the BEST!!!!!!!!!!!!!!!!!
@vrindatyagi6744
@vrindatyagi6744 4 жыл бұрын
THANKYOU SO MUCH
@MdineshKumar-gp9wg
@MdineshKumar-gp9wg Жыл бұрын
cout
@blaze9558
@blaze9558 Жыл бұрын
thanks man!
@simardeepkaur8275
@simardeepkaur8275 3 жыл бұрын
Thanks buddy
LeetCode 238. Product of Array Except Self (Solution Explained)
14:49
How To Solve Algorithms - Longest Common Prefix
9:31
Web Dev Simplified
Рет қаралды 30 М.
I Got Rejected (again)
9:43
Nick White
Рет қаралды 206 М.
LeetCode 22. Generate Parentheses
12:39
Nick White
Рет қаралды 84 М.
Coding Interviews Be Like
5:31
Nicholas T.
Рет қаралды 6 МЛН
Longest Common Prefix - Leetcode 14 - Python
6:31
NeetCode
Рет қаралды 192 М.
Self Taught Programmers... Listen Up.
11:21
Nick White
Рет қаралды 1,1 МЛН
Lecture 80: Longest Common Prefix Problem || Tries || C++ Placement Series
20:17
5 Signs of an Inexperienced Self-Taught Developer (and how to fix)
8:40