MAKING A LARGE ISLAND | LEETCODE # 827 | PYTHON SOLUTION

  Рет қаралды 8,417

Cracking FAANG

Cracking FAANG

Күн бұрын

Пікірлер: 19
@thezendawg
@thezendawg 8 ай бұрын
The first example isn't an area of 2 though right b/c 4-directionally doesn't mean diagonal?
@rsKayiira
@rsKayiira 2 жыл бұрын
Excellent explanation. Only question is in second for loop of both double for loops why use len(grid[m]) when len(grid[0]) also works?
@crackfaang
@crackfaang 2 жыл бұрын
Doesn’t matter, just personal preference. Both are fine
@rsKayiira
@rsKayiira 2 жыл бұрын
@@crackfaang thank you
@saadkhan4049
@saadkhan4049 9 ай бұрын
In the problem statement it says 4-directional, why do you keep counting the diagonals to be a part of the island?
@crackfaang
@crackfaang 9 ай бұрын
Probably just a mistake on my part. Update the code to use it without it, should be the same
@syafzal273
@syafzal273 9 ай бұрын
Very well explained, I made a lot of mistakes while coding this up!
@crackfaang
@crackfaang 9 ай бұрын
Yea it's a tricky one for sure
@WaldoTheWombat
@WaldoTheWombat 8 ай бұрын
This is my version: class Solution: def calculate_potential_connection_size(self, i, j,): indices_of_starting_cells = set() # up if i-1 > -1 and self.grid[i-1][j] != 0: # can be switched with checking if it's a tupple indices_of_starting_cells.add( self.grid[i-1][j]) # right if j+1 < len(self.grid[i]) and self.grid[i][j+1] != 0: # can be switched with checking if it's a tupple indices_of_starting_cells.add( self.grid[i][j+1]) # down if i+1 < len(self.grid) and self.grid[i+1][j] != 0: # can be switched with checking if it's a tupple indices_of_starting_cells.add( self.grid[i+1][j]) # left if j-1 > -1 and self.grid[i][j-1] != 0: # can be switched with checking if it's a tupple indices_of_starting_cells.add( self.grid[i][j-1]) return sum( [self.starting_cell_indices_to_island_size[pair] for pair in indices_of_starting_cells] ) + 1 # because of 0 the we would change to a 1 def get_island_size(self, i, j, start_i, start_j): size = 0 if self.grid[i][j] == 1: size += 1 self.grid[i][j] = (start_i,start_j) if i-1 > -1: # up size += self.get_island_size(i-1, j, start_i, start_j) if j+1 < len(self.grid[i]): # right size +=self.get_island_size(i, j+1, start_i, start_j) if i+1 < len(self.grid): # down size +=self.get_island_size(i+1, j, start_i, start_j) if j-1 > -1: # left size += self.get_island_size(i, j-1, start_i, start_j) else: # self.grid[i][j] must be 0 self.surrounding_zeroes.add((i,j)) return size def largestIsland(self, grid: List[List[int]]) -> int: self.grid = grid # print(f"Before : ") # self.print_grid() self.surrounding_zeroes = set() self.starting_cell_indices_to_island_size = dict() max_area = 1 # because of 0 the we would change to for i in range(len(self.grid)): for j in range(len(self.grid[i])): if self.grid[i][j] == 1: self.starting_cell_indices_to_island_size[i, j] = self.get_island_size(i,j, start_i=i, start_j=j) # print(f"{self.starting_cell_indices_to_island_size[i, j] = }") max_area = max([max_area, self.starting_cell_indices_to_island_size[i, j]]) # print(f"After : ") # self.print_grid() for i, j in self.surrounding_zeroes: if self.grid[i][j] == 0: # print(f"the 0 at {i}, {j} = {self.calculate_potential_connection_size(i, j)}") max_area = max([max_area, self.calculate_potential_connection_size(i, j)]) return max_area
@nikethdonthula2123
@nikethdonthula2123 Жыл бұрын
Explained very well 🔥🔥
@SatinderSingh71
@SatinderSingh71 11 ай бұрын
Can you post the solution to the code?
@mohammadkareem1187
@mohammadkareem1187 2 жыл бұрын
keep it up bro, great job!
@nithinsastrytellapuri291
@nithinsastrytellapuri291 9 ай бұрын
very good explanation. Thank you
@trueinviso1
@trueinviso1 6 ай бұрын
Great walk through, thanks!
@AmolGautam
@AmolGautam 10 ай бұрын
Thank you very much , this is quite helpful.
@strawberriesandcream2863
@strawberriesandcream2863 Жыл бұрын
great explanation and solution, thanks :)
@Ankit-hs9nb
@Ankit-hs9nb 2 жыл бұрын
Please cover this one: 249. Group Shifted Strings thanks!:)
@crackfaang
@crackfaang 2 жыл бұрын
Only if you subscribe to the channel 😉
@Ankit-hs9nb
@Ankit-hs9nb 2 жыл бұрын
Already subscribed a month ago and notification bell also turned on!😄
DESIGN IN-MEMORY FILE SYSTEM | LEETCODE # 588 | PYTHON SOLUTION
21:37
Cracking FAANG
Рет қаралды 10 М.
Google Coding Question - Making a Large Island (Hard)
25:11
AlgosWithMichael
Рет қаралды 16 М.
Муж внезапно вернулся домой @Oscar_elteacher
00:43
История одного вокалиста
Рет қаралды 6 МЛН
Accompanying my daughter to practice dance is so annoying #funny #cute#comedy
00:17
Funny daughter's daily life
Рет қаралды 20 МЛН
NUMBER OF ISLANDS - Leetcode 200 - Python
11:41
NeetCode
Рет қаралды 333 М.
INTERVAL LIST INTERSECTIONS | LEETCODE 986 | PYTHON TWO-POINTER SOLUTION
12:16
SHORTEST PATH IN A BINARY MATRIX | LEETCODE 1091 | PYTHON BFS SOLUTION
14:03
Making A Large Island || Google Question || Code + Explanation
17:05
Code with Alisha
Рет қаралды 3,3 М.
ROBOT ROOM CLEANER | LEETCODE # 489 | PYTHON BACKTRACK SOLUTION
19:44
Cracking FAANG
Рет қаралды 11 М.
Max Area of Island - Leetcode 695 - Python
11:14
NeetCode
Рет қаралды 63 М.
Maximum Swaps - Leetcode 670 - Python
15:40
NeetCodeIO
Рет қаралды 13 М.