Solution to problem on slide 5:
# this is a dp problem. For each node calculate the minimum cost to each node in the next row y = len(grid) x = len(grid) minvalprev = grid #cost of first row for i in range(y-1): minval = [1e10]*x for j1 in range(x): val = grid[i][j1] for j2 in range(x): #minimum cost of each column in the next row updated by the current node minval[j2] = min(minval[j2], minvalprev[j1]+moveCost[val][j2] +grid[i+1][j2]) minvalprev=minval return min(minval)
Solution to problem on slide 6 (HW):
The standard recursive solution, if p and q exist, then their children and their values must be equal.
def isSameTree(self, p, q): if p and q: return p.val == q.val and self.isSameTree(p.left, q.left) and self.isSameTree(p.right, q.right) return p is q