Graph Algorithms for Technical Interviews - Full Course

  Рет қаралды 1,292,986

freeCodeCamp.org

freeCodeCamp.org

Күн бұрын

Пікірлер: 734
@david-tracy
@david-tracy 3 жыл бұрын
“Later on in the tutorial we’ll go over examples of when u might use one over the other” What a breath of fresh air 🙏🏼
@Randomisticful
@Randomisticful 2 жыл бұрын
Einstein once said "If you are able to explain it to a 5 year old, you understand it yourself". Alvin, you are one of a kind!
@syedtalha1264
@syedtalha1264 10 ай бұрын
Richard Fynman said that.
@Randomisticful
@Randomisticful 10 ай бұрын
@@syedtalha1264 I also said that, hey!
@Zenoandturtle
@Zenoandturtle 9 ай бұрын
Another immortal quote: ‘I stand on the shoulders of giants’ was attributed to Isaac Newton, as it turns out he wasn’t the one who coined it.
@frankmasby6099
@frankmasby6099 9 ай бұрын
I can verify that I’m 5 and I do understand this thanks to this video.
@chriskorbel6796
@chriskorbel6796 3 жыл бұрын
This guy is phenomenal. His course on dynamic programming was exceptionally well done as well.
@mauricemarin5810
@mauricemarin5810 3 жыл бұрын
A little old comment, but exactly my thought, I just went through his dynamic programming course and completely agree
@akshayagrawal2222
@akshayagrawal2222 3 жыл бұрын
@@mauricemarin5810 same here
@elad7264
@elad7264 2 жыл бұрын
Hi, @Chris can you add a link to the dynamic programing course. Thanks
@chriskorbel6796
@chriskorbel6796 2 жыл бұрын
@@elad7264 kzbin.info/www/bejne/pXPXZmaPl7dsgc0
@kk11223
@kk11223 2 жыл бұрын
Agreed after that course, I am so confident on DP.
@hklbly
@hklbly 2 жыл бұрын
I chose this video after I got an invitation for an online test from a well-known company. This was my only chance since I have never studied algorithm oriented programming. I was given a graph problem and handled it correctly with a minor deficiency in efficiency :) Thanks a lot!
@ragzzytv
@ragzzytv 2 жыл бұрын
I'm a mid/senior level webdev and I just come back to Alvin's videos when preparing for interview everytime. its so simple and help me rebrush all of them without much hassle. very good work
@ordinarygg
@ordinarygg Жыл бұрын
you probably use parent_id = .. db.Column in your projects, don't you xDDD
@shayorshayorshayor
@shayorshayorshayor Жыл бұрын
​@@ordinaryggew.
@callahan7257
@callahan7257 Жыл бұрын
@@ordinarygg Don't get it.
@atTien-ko1pg
@atTien-ko1pg Ай бұрын
@@ordinarygg i know what u mean Xd, web devs isnt that hard 🗿🗿
@Singh54321
@Singh54321 Ай бұрын
the voice, he style of teaching , the animations and visuals absolutely phenomenal. love it
@Emanuel-yb3qk
@Emanuel-yb3qk Ай бұрын
Best teacher ever. Thanks for this.
@yadikishameer9587
@yadikishameer9587 2 жыл бұрын
This guy literally changed the way I look at dynamic programming.
@pz5109
@pz5109 3 жыл бұрын
Just finished the Dynamic Programming from Alvin and now back at the Graph algorithm.
@Niki-pc5zk
@Niki-pc5zk 2 жыл бұрын
This is the only course I’ve found that has successfully got the concept of graphs through my thick skull, it’s been a subject that’s been so hard for me to learn. Thank you for making this!!
@princeadigwe3764
@princeadigwe3764 2 жыл бұрын
How this person managed to explainamy concepts perfectly is superb... We really need people like this guy in the teaching field... I downloaded the video and I ve not regretted at all
@jimmybellmon1268
@jimmybellmon1268 2 жыл бұрын
Me too I just realized Breathe First Traverse is Fibonacci
@varunshridhar1310
@varunshridhar1310 3 жыл бұрын
The course on DP was a winner. Course on Graph algo is another winner. Hope to learn a lot more from you.
@keerthi1070
@keerthi1070 3 жыл бұрын
you are another winner for appreciating him :)
@ziggystardust3763
@ziggystardust3763 3 жыл бұрын
@@keerthi1070 you are another winner for appreciating another winner
@Tetrax
@Tetrax 2 жыл бұрын
@@ziggystardust3763 you are a winner for appreciating a winner appreciating a winner
@ldar6472
@ldar6472 2 жыл бұрын
@@Tetrax this recursive call stack gotta stop somewhere XD
@Tetrax
@Tetrax 2 жыл бұрын
@@ldar6472 let’s assume we’re on an alternate universe where leetcode doesn’t have a time limit
@harshdhamecha5301
@harshdhamecha5301 6 ай бұрын
I never knew Graphs were that easy! You're one of the rarest gems I have come across in my life. Followed it all along. Solved all the problems in Python.
@utkarshrastogi8791
@utkarshrastogi8791 3 жыл бұрын
Was looking for something like this and can't beleive you just uploaded it!
@karamkassem9821
@karamkassem9821 3 жыл бұрын
Me too
@ohmegatech666
@ohmegatech666 2 ай бұрын
I was confused when you started going through depth first search because you put both of A's neighbors B and C on the stack which seems to be breadth first. But what helped me to understand is the fact that the loop starts when we pop a node from the stack, not when we add it to the stack. The stack doesn't represent which node we are currently "at", the node we pop from the stack does that. The stack is just an in between step. So we don't actually "go to" C at first, we just add it to the stack for now. We do "go to" B because we pop it from the stack
@johnnychang3456
@johnnychang3456 Жыл бұрын
OMG this video is an absolute gem! I used to be baffled by the island problem and just simply memorizing the solution on leetcode, but after following along for two hours, I can confidently code up the solution all by my self! Thank you so much you are a fantastic teacher.
@johnbell5195
@johnbell5195 2 жыл бұрын
For island count (1:58:20), you actually don't need a visited set to keep track of the tiles you have already visited. Simply set the land tile to water "W" when you visit it; you already have the logic there to skip over water tiles.
@Damian-cd2tj
@Damian-cd2tj 2 жыл бұрын
Yes, but in real life, functions don’t modify input objects, it’s a bad practice. In an interview I wouldn’t do it without asking.
@manumathew2846
@manumathew2846 2 жыл бұрын
If space complexity needs to be minimized and the interviewer allows in-place modification, then this is a good approach.
@MohamedSaligh
@MohamedSaligh 3 жыл бұрын
Best explanation I ever watched in KZbin. You deserve a thumbs up and a comment from a laziest person on earth!
@Basta11
@Basta11 2 жыл бұрын
Leetcode - O(n^2) brute force. Algoexpert - O(n) linear Alvin / Structy - log(n)
@howhello354
@howhello354 10 ай бұрын
😂😂 True
@minciNashu
@minciNashu 2 жыл бұрын
34:04 E = N*(N-1) for directed graphs. So in that example, 3 nodes means 6 edges (not 9, as in 3 squared)
@kanakmittal3756
@kanakmittal3756 3 жыл бұрын
Man! you have my respect. This was the best course for getting started with graph problems I have ever seen. Thank You so much.
@radhikatupkary7875
@radhikatupkary7875 2 жыл бұрын
This is phenomenal! I was finding Graph problems so difficult before watching this video, and now they seem fairly easy after watching the entire video! Thanks a ton!
@surajshah3590
@surajshah3590 2 жыл бұрын
Great tutorial Alvin. For python programmers, here is the pattern for largest components (connected components is similar): def explore(arr, node, visited, comp_count): if node in visited: return 0, visited visited[node] = 1 for neighbour in arr[node]: comp_count += 1 explore(arr, neighbour, visited, comp_count) return comp_count, visited def largestcomponent(arr): largest_comp = 0 visited = {} for node in arr: if node not in visited: comp_count, visited_new = explore(arr, node, visited, 1) visited = visited_new if comp_count > largest_comp: largest_comp = comp_count return largest_comp
@saishsankhe
@saishsankhe Жыл бұрын
Before watching this course, I dreaded DFS BFS problems. I always used to somehow understand the logic just before the interview and then forget everything. But now, I understand the logic, visualization and how to appraoch it. Thank you so much Alvin and FCC for this. I am definitely going to watch other interview videos. 👍
@steventolerhan5110
@steventolerhan5110 8 ай бұрын
Honestly one of the best tutorials ive come across in my 2 years of coding. Good work Alvin
@vinayrajagopal5478
@vinayrajagopal5478 2 жыл бұрын
This is a great intro to basic graph problems - however we may need a part two to cover more advanced topics such as Union Find, Minimum Spanning Trees, Dijkstras & bellman ford, topological sort, etc.
@anonymousanonymous6411
@anonymousanonymous6411 Жыл бұрын
Sure we totally need. Code interview for wannabe juniors requires some of advanced topics
@theLowestPointInMyLife
@theLowestPointInMyLife Жыл бұрын
Guaranteed you won't actually need any of that when actually building something in the real world.
@avoo1d
@avoo1d 3 жыл бұрын
Just for correction, Islands count problem, inside DFS function for checking boundaries, for 'j' check for j < grid[0].length, because if in NxM grid N !== M, in that case j < grid.length cannot check for true boundary and result will be wrong, I just wanna mention that in case
@avitwito1734
@avitwito1734 2 ай бұрын
amazing tutor, The best I've seen
@sede189
@sede189 3 жыл бұрын
This course is hands-down, unequivocally fantastic!!! Best useful course I've seen about graphs. It ties together the algorithms with concrete use cases which just clicked. Thank you for the fantastic job!!!!
@fandibataineh4586
@fandibataineh4586 3 ай бұрын
great video, but i have a minor comment at 1:00:34, look at the hasPath function, i would swab the first 2 lines (line 7 and 8), which represent our 2 atomic cases, this way you can use the function to check whether there is a path from src to dst that does not pass through node x, or nodes {x, y, z} by calling the function with the visited set already populated with the nodes you want to exclude, this would not work with the current implementation but it still works fine
@aditi1786
@aditi1786 15 күн бұрын
50 mins in and THIS IS THE BEST VIDEO ON THE INTERNET handsdown!! Thank you so much
@jerry861200
@jerry861200 3 ай бұрын
I am currently struggling with studying graphs, and you are my savior.
@cateyenebula
@cateyenebula 2 жыл бұрын
As an embedded software engineer, I never learned about these kind of algorithms. This is invaluable knowledge for me, thanks for leveling up my skill!
@bambamgam
@bambamgam 2 жыл бұрын
Huge fan of these courses, he's a great teacher and breaks down these problems to be far less intimidating
@OEThe11
@OEThe11 2 жыл бұрын
This was an elite video. I did the last two questions and did not understand how to approach it or understood what the right answer for those questions. Watch the 2+ hours of video as well as coding it up myself, and everything makes sense. EVERYTHING. I am now able to do one of the toughest topics that I was having trouble with. So BIG Thank You for that. P.S. For the last 2 questions, you don't need the visited set, you can flip the land to water or another value altogether. Avoiding the cyclic infinite loop.
@ashwanikumar415
@ashwanikumar415 5 ай бұрын
For largest component problem , there can be an easy and alternate solution . Since , we already have visited which is keeping track of all nodes. There is no need to maintain separate "size". Below is the code you can use to your advantage: const largestComponent = (graph) => { let maxSize = 0; let previousVisitedSize = 0; let actualSize = 0; const visited = new Set(); for(const node in graph) { if(explore(graph, node, visited) === true) { actualSize = visited.size - previousVisitedSize; maxSize = Math.max(actualSize, maxSize); previousVisitedSize = visited.size; } } return maxSize; }; const explore = (graph, node, visited) => { if(visited.has(String(node))) return false; visited.add(String(node)); for(const neighbor of graph[node]) { explore(graph, neighbor, visited) } return true; }
@jrumac
@jrumac 5 ай бұрын
Alvin is single-handedly going to take me to the promised land. Love you Alvz
@kelvinmuza7034
@kelvinmuza7034 3 жыл бұрын
My guy, I don't know how to thank you. You have a marvelous way of teaching. This has really helped me a lot
@srLinux
@srLinux Жыл бұрын
Thanks again, from Brazil! ❤
@ChillAutos
@ChillAutos 2 жыл бұрын
This was amazing. I've watched a bunch of these types of videos over the years and this is the only one that actually made it look easy. I can actually say I understand this now. Thank you.
@RandomShowerThoughts
@RandomShowerThoughts 2 жыл бұрын
easily the best teacher of algorithms I've ever seen. Alvin spends time going over theory, Big O notation, and common errors. As someone that's never studied algorithms and data structures, all the videos he has done have helped drastically
@iammilano24
@iammilano24 Жыл бұрын
Learning this to win a coding competition. If I reply to this thread on the 28th of this month, it's good news! Wish me luck🙏
@harsha1883
@harsha1883 7 ай бұрын
Here are the leetcode equivalent questions: has path/ undirected path - 1971. Find if Path Exists in Graph connected components - 323. Number of Connected Components in an Undirected Graph island count - 200. Number of Islands minIsland - 695. Max Area of Island
@aroncanapa5796
@aroncanapa5796 2 жыл бұрын
I think this should be the first programming video anyone watches , I was struggling so hard before this
@MARIUTSKI13897
@MARIUTSKI13897 3 жыл бұрын
I'd always been scared of learning graphs, even though I wanted to... but this course took my fear away 😎👍🏻 excelente course, as always!
@rahul-qo3fi
@rahul-qo3fi 2 жыл бұрын
watched your lecture on Dynamic Programming and now I am here. You are such a phenomenal teacher, thanks a ton for making these tutorials!
@patrickudochukwu6280
@patrickudochukwu6280 2 жыл бұрын
Please @rahul what's the DP link
@ohmegatech666
@ohmegatech666 2 ай бұрын
Just have to agree with others that this is one of if not the best course on graph problems out there. Like many, I was intimidated by graph problems early on but this video has made me so much more comfortable with them. I feel like I actually understand them at a deep level now.
@kirillzlobin7135
@kirillzlobin7135 Жыл бұрын
Your explanation is ideal. Voice and the way you expalin does not make a listener tired. This is just amazing. Please continue doing your job. It is amazing
@Dani-zf7cu
@Dani-zf7cu 2 ай бұрын
Thank you Alvin! I've been trying to grind leetcode and DSA for interviews, and this video as well as your binary trees video was so amazingly helpful and way more efficient than blindly doing problems to help me strengthen the fundamentals, and in particular, I was really struggling with handling how to handle graphs in the form of a matrix rather than an adjacency list -- I typically tried to convert it into an AL unnecessarily, but watching this video, especially the numIslands section, made things just click. You also have given me so much of a better understanding and less fear of recursion, even going to appreciation of recursion! That's crazy. Also, for the numIslands problem, to save a bit on space, I got rid of the visited set and just set grid[row][col] == 'V' to mark that it's visited, and only add where grid[row][col] == L. This worked.
@thewildweb
@thewildweb 2 ай бұрын
This is really a damn refresher
@Rajansippy1
@Rajansippy1 3 жыл бұрын
Thanks
@adityabyreddy
@adityabyreddy 2 жыл бұрын
This is amazing. I found it really easy to understand the graph algorithms after referring to this video. Great job, Alvin :) Small correction in the solution described for checking if a source and destination have a path in an undirected graph. (line no. 8) The logic of traversing the neighbors and adding the source node to the visited list has to be part of the condition that validates whether ta node is visited or not. if !(visited.has(src)) { // add the src to the visitors list // recursively traverse through the src neighbors }
@Website_TV_1
@Website_TV_1 2 ай бұрын
I like his lecture, learn a lots, thanks man.
@staywithmeforever
@staywithmeforever 7 ай бұрын
This was not for coding interviews but a good start for beginners who are into graphs with perfect visualization
@Spaaace
@Spaaace 3 жыл бұрын
100% the best teacher I've seen. You are legit the best, my dude.
@jerinjohnkachirackal
@jerinjohnkachirackal 2 жыл бұрын
This is really really a complete tutorial for “Graph based Problems” both in terms of coding Problems, interview preperation including MAANG and even for a new bie.
@AnthonyInSanDiego
@AnthonyInSanDiego 2 жыл бұрын
just wow on the fact that we're living in a world where we have access to such a quality learning material for FREE. Thanks a lot!!
@kishorekumar9930
@kishorekumar9930 2 жыл бұрын
You just made me crack my Interview on graph algorithms... and I have just seen half the video only to make it... Thanks a ton Bro... Let me complete this
@alessiocelentano6895
@alessiocelentano6895 3 жыл бұрын
I never comment on KZbin, but I love the way Alvin explains concepts. Thanks a lot for your work!
@alexneagoe5258
@alexneagoe5258 2 жыл бұрын
I am actually studying C but I have found this video tremendeously helpfull in explaining how graphs are traversed and how not to use return in a bad way when you want to actually make use of recursion to backpedal from dead ends in situations where you don't find your base case. thank you again. subscribed!
@symbol767
@symbol767 2 жыл бұрын
The best beginner graph tutorial. I always come back to this to refresh myself on graphs.
@bikkikumarsha
@bikkikumarsha 2 жыл бұрын
Changing lives, one algorithm at a time. Great work Alvin!
@brothermalcolm
@brothermalcolm 2 жыл бұрын
Thanks to the first 30mins of this video alone I was able to extend the idea of adjacency lists and independently solve all the following problems on undirected graphs and grid graphs in just under a week's worth of practice
@codecleric4972
@codecleric4972 2 жыл бұрын
I thought I'd seen the all the greatest of online coding instructors, and then I found Alvin... Seriously these explanations are paced exactly perfectly and ultra clear
@kvtys
@kvtys 11 ай бұрын
For the island count problem, i ended up converting the entire 2D grid into a graph containing only 'L' nodes with multiple components. I then did a dfs for each of those islands, incrementing a counter everytime i finished exploring one of them and adding it to my visited set. Really interesting how you can solve this problem in such a different way!
@howhello354
@howhello354 10 ай бұрын
Nice try. You converted the problem to components based & followed his components count approach.
@adiljamshad215
@adiljamshad215 Жыл бұрын
I literally have no words to express how mind-blowing Alvin is.
@kavan3
@kavan3 Ай бұрын
34:29 for anyone confused here, the graph in the example given is incorrect. number of edges is not n^2. To show a graph with n^2 edges each node needs to point to every other node AND also point to itself
@franklinghosh4317
@franklinghosh4317 3 жыл бұрын
Wow!, Your DP course was phenomenal, now you came up with Graph theory too, Thank you
@AlvintheProgrammer
@AlvintheProgrammer 3 жыл бұрын
Glad to hear you found value in my content! More coming soon.
@vinayaktyagi8773
@vinayaktyagi8773 3 жыл бұрын
@@AlvintheProgrammer what next ?
@mz_dreamminister
@mz_dreamminister 3 жыл бұрын
@@AlvintheProgrammer this is really true! you are the best!
@AlvintheProgrammer
@AlvintheProgrammer 3 жыл бұрын
@@vinayaktyagi8773 Likely trees or linked lists next. You can check out my platform, Structy (link in the video description), if you want to check it out early before it premiers on free code camp.
@terahbruce2524
@terahbruce2524 3 жыл бұрын
Alvin is the by far the best programming teacher on youtube imo
@chaitanyashahare2734
@chaitanyashahare2734 4 ай бұрын
This video is game changer!!
@albertomiranda3763
@albertomiranda3763 2 жыл бұрын
Can't believe this is free!! This info would cost hundreds at my university. Great content 👍
@samwilson4597
@samwilson4597 2 жыл бұрын
this man is the greatest DS&ALG teacher ever
@christinemello694
@christinemello694 6 ай бұрын
by far the best explanation of dfs and bfs that actually makes sense!
@amarjeetchaurasia2811
@amarjeetchaurasia2811 2 жыл бұрын
Never looked graph so easy to me before I watched this one, thanks! 😊
@brothermalcolm
@brothermalcolm 2 жыл бұрын
Alvin you have just explained in 30mins what I tried and failed to learn from google in 30days!
@SwagatVlogs
@SwagatVlogs Жыл бұрын
Quick observation on the Nondirected - Has Path problem: Before that, Alvin, you are a genius man! You make everything sooo easy B) Ok here it goes: At around 59:00 you are using a set to keep track of visited nodes and returning false as soon as you find the source element in the set. I feel you are missing an edge case here. Imagine a graph in the shape of a Kite 🪁🪁🪁🪁 --> A cycle on top and a tail just below the cycle. The cycle and the tail are one single graph. Let us say the cycle starts at node a (a - b - c - a) and the tail (a - m - n - o). I want to find a path between (b and o) We need to to track the remaining nodes of the graph, because, without it, the process will start from a and take a trip through the cycle and come back to a; this already exists in set at this point in execution, the function returns false without checking the tail section of the Kite Shaped Graph.
@arunimachakraborty1175
@arunimachakraborty1175 Жыл бұрын
I was quite struggling with problems when I realized my conception isn't clear. I can't thank you enough for this explanation.
@Mohib3
@Mohib3 2 жыл бұрын
one of the best instructors. what a beast
@sjara91
@sjara91 2 жыл бұрын
¡Gracias!
@JeremiKress
@JeremiKress 2 жыл бұрын
Finished my very first fCC course. The pedagogy is excellent, Alvin is a great teacher
@tesszheng8132
@tesszheng8132 2 жыл бұрын
at 01:45:00 , when doing island count, we can actually change the grid[r][c] from 'L' to 'W' when exploring island, so we don't need to use a set to track which node has been visited
@Sean-gx1sf
@Sean-gx1sf Жыл бұрын
One of the most useful videos I've seen for understanding data structures, awesome
@agustinvargas6973
@agustinvargas6973 2 жыл бұрын
This is fantastic. Makes graphs easy to digest. Thanks for that. I did find a minor issue in the island count problem solution. It assumes that each row will have the same number of columns. That assumption isn't described in the problem. So a quick fix would be to run the nested loop to the length of the row instead of fixing it to zero. And doing the same for the inbounds check. That would present an issue in the exploration in that there might not be any map in either direction, so you'll have to add an existence check in the explore to account for that. This way if a row has less coordinates, or more, it would still work properly.
@chiomaubogagu7732
@chiomaubogagu7732 7 күн бұрын
This course was incredibly helpful and so well done. Thanks so much! Alvin, you're a phenomenal teacher!!
@ashleypowell8066
@ashleypowell8066 Жыл бұрын
Here because Alvin's DP video was amazing. This is another gem. Thanks!!!
@tobylerone007
@tobylerone007 3 жыл бұрын
This was probably the most useful tutorial I've seen on YT. Great work!
@mahesh_kok
@mahesh_kok 2 жыл бұрын
Who the Hell are you to teach Graphs in this outstanding way....Fear of Heights can overcome by visiting cliff and Fear of Graphs can overcome by going through your Videos. I am speechless
@TrevorSullivan
@TrevorSullivan Ай бұрын
Extremely high quality presentation! Well done
@monikajha3500
@monikajha3500 3 жыл бұрын
Alvin, you literally took away my fear of Graph DS. Cannot thank you enough.
@saptarshighosh3921
@saptarshighosh3921 2 жыл бұрын
@39:26 , you don't have to wait until the current == dest, an optimal approach is to maintain a visited set and add element to it when a un-visited neighbour is found. check if dest in the visited set or not, if yes then break the loop and return a True. The logic behind here, if you have seen your dest already you don't have to wait until it pops out. This won't change the asymptotic upper-bound but optimises the average case runtime with early stopping. N.B. same logic is applicable for iterative and recursive DFS.
@chibuzorisrael5878
@chibuzorisrael5878 Жыл бұрын
Thank you so much, Alvin, I have always been intimidated by graphs. This is the best course you will ever stumble across on graphs.
@vibhushajain6363
@vibhushajain6363 3 жыл бұрын
Thank you for making graphs so easy for me! Appreciate your patience to make these videos and share
@techandeverythingelse
@techandeverythingelse 2 жыл бұрын
number islands problem couldnt have been solved easier than this, kudos to this guy! for once i was able to understand the solution and complete the problem without errors.
@kirillzlobin7135
@kirillzlobin7135 Жыл бұрын
So logical and calm and fantastic explanation. This is just unbeliveble :) How you can explain this stuff so easily. You are the legend
@dp2120
@dp2120 8 ай бұрын
I believe there's an easier (in my opinion) way to do the Island Count problem using what we learned earlier in the video. If you first convert the grid into a hashmap representation of a graph (adjacency matrix vs adjacency list), then you can simply run the component count algorithm from earlier on it. I think this is right, but please correct me if the logic isn't sound: def gridToGraph(grid): n = len(grid) m = len(grid[0]) graph = {} for row in range(n): for col in range(m): if grid[row][col] == "L": if row not in graph.keys(): graph[row] = [col] if col not in graph.keys(): graph[col] = [row] graph[row].append(col) graph[col].append(row) return graph def exploreIsland(graph, node, visited): if node in visited: return False visited.append(node) for child in graph[node]: exploreIsland(graph, child, visited) return True def getIslandCount(grid): graph = gridToGraph(grid) visited = [] count = 0 for node in graph: if exploreIsland(graph, node, visited): count += 1 return count
@exploregeographics
@exploregeographics 5 ай бұрын
Excellent++ Thanks for the course.
@eternalwanderer8166
@eternalwanderer8166 3 жыл бұрын
Thank you so much. This is the only video on KZbin which addresses the graph algorithms the way they should be addressed - graphical visualization, pseudocode and actual problem solving.
@khaino6828
@khaino6828 2 жыл бұрын
This instructor is great. I wish he create complete data structure and algo course.
@everyday___life
@everyday___life Жыл бұрын
Hats off FCC and Alvin. Whenever I see your videos I also get the feeling that I should give back to the awesome community this is .
@eliyahulevy8023
@eliyahulevy8023 2 жыл бұрын
this guy is the best teacher there is. Thank you so much! I have subscribed to your chanel (:
Binary Tree Algorithms for Technical Interviews - Full Course
1:48:53
freeCodeCamp.org
Рет қаралды 740 М.
Dynamic Programming - Learn to Solve Algorithmic Problems & Coding Challenges
5:10:02
Wednesday VS Enid: Who is The Best Mommy? #shorts
0:14
Troom Oki Toki
Рет қаралды 50 МЛН
ССЫЛКА НА ИГРУ В КОММЕНТАХ #shorts
0:36
Паша Осадчий
Рет қаралды 8 МЛН
번쩍번쩍 거리는 입
0:32
승비니 Seungbini
Рет қаралды 182 МЛН
Lecture 13: Breadth-First Search (BFS)
50:48
MIT OpenCourseWare
Рет қаралды 707 М.
Introduction to Graph Theory: A Computer Science Perspective
16:26
Linked Lists for Technical Interviews - Full Course
1:27:24
freeCodeCamp.org
Рет қаралды 369 М.
Recursion in Programming - Full Course
1:51:36
freeCodeCamp.org
Рет қаралды 974 М.
Intro to Java Programming - Course for Absolute Beginners
3:48:25
freeCodeCamp.org
Рет қаралды 3,6 МЛН
Breadth First Search grid shortest path | Graph Theory
16:51
WilliamFiset
Рет қаралды 342 М.
Visualizing transformers and attention | Talk for TNG Big Tech Day '24
57:45
LeetCode was HARD until I Learned these 15 Patterns
13:00
Ashish Pratap Singh
Рет қаралды 661 М.