Source Basic Idea: since we strip one layer of leaves at a time, the time when a middle node got stripped is based on the height of its taller children
Basic Idea: for each cell, add the number of legal sides to the solution. class Solution(object): def islandPerimeter(self, grid): """ :type grid: List[List[int]] :rtype: int """ if not grid: return
Basic Idea: try to obtain the original string using all possible repeated substring from the shortest to the longest. class Solution(object): def repeatedSubstringPattern(self, str): """ :type str: str :rtype: bool
Basic idea: using a greedy algorithm, prioritize satisfying kids with lower greed and assign cookies this way as many as possible. Implementation Apple: class Solution(object): def findContentChildren(self, g, s): """