Leetcode 543: Diameter of a Binary Tree

Problem Statement Description Given the root of a binary tree, return the length of the diameter of the tree. The diameter of a binary tree is the length of the longest path between any two nodes in a tree. This path may or may not pass through the root. The length of a path between two nodes is represented by the number of edges between them. Examples Example 1: flowchart TD a((1))-->b((2)) b-->c((4)) b-->d((5)) a-->e((3)) Input: root = [1,2,3,4,5] Output: 3 Explanation: 3 is the length of the path [4,2,1,3] or [5,2,1,3]....

January 16, 2023 · 3 min · 492 words · Me

Leetcode 721 Accounts Merge

Problem Statement Given a list of accounts where each element accounts[i] is a list of strings, where the first element accounts[i][0] is a name, and the rest of the elements are emails representing emails of the account. Now, we would like to merge these accounts. Two accounts definitely belong to the same person if there is some common email to both accounts. Note that even if two accounts have the same name, they may belong to different people as people could have the same name....

December 7, 2022 · 3 min · 559 words · Me

Leetcode 200 Number of Islands

Problem Statement Given an m x n 2D binary grid grid which represents a map of '1's (land) and '0's (water), return the number of islands. An island is surrounded by water and is formed by connecting adjacent lands horizontally or vertically. You may assume all four edges of the grid are all surrounded by water. Example 1: Input: grid = [ ["1","1","1","1","0"], ["1","1","0","1","0"], ["1","1","0","0","0"], ["0","0","0","0","0"] ] Output: 1 Example 2: Input: grid = [ ["1","1","0","0","0"], ["1","1","0","0","0"], ["0","0","1","0","0"], ["0","0","0","1","1"] ] DFS: Recursive class Solution: def numIslands(self, grid: List[List[str]]) -> int: # ROWS >= COLS >= 1 ROWS, COLS = len(grid), len(grid[0]) islands = 0 # T: O(N x M) for r in range(ROWS): for c in range(COLS): if grid[r][c] == "1": islands += 1 self....

December 5, 2022 · 3 min · 483 words · Me

Leetcode 207 Course Schedule

Problem Statement There are a total of numCourses courses you have to take, labeled from 0 to numCourses - 1. You are given an array prerequisites where prerequisites[i] = [ai, bi] indicates that you must take course bi first if you want to take course ai. For example, the pair [0, 1], indicates that to take course 0 you have to first take course 1. Return true if you can finish all courses....

December 3, 2022 · 2 min · 229 words · Me

Leetcode 133 Clone Graph

Problem Statement Given a reference of a node in a connected undirected graph. Return a deep copy (clone) of the graph. Each node in the graph contains a value (int) and a list (List[Node]) of its neighbors. class Node { public int val; public List<Node> neighbors; } Test case format: For simplicity, each node’s value is the same as the node’s index (1-indexed). For example, the first node with val == 1, the second node with val == 2, and so on....

December 3, 2022 · 3 min · 522 words · Me