Skip to content

Instantly share code, notes, and snippets.

View tech-cow's full-sized avatar
🏠
Working from home

Tech Cow tech-cow

🏠
Working from home
View GitHub Profile
class Solution(object):
def diameterOfBinaryTree(self, root):
if not root: return 0
left = self.getHeight(root.left)
right= self.getHeight(root.right)
return max(left + right, max(self.diameterOfBinaryTree(root.left), self.diameterOfBinaryTree(root.right)))
def getHeight(self, root):
if not root: return 0
left = self.getHeight(root.left)

Referral: Tiana Jihyung

正在面

潜心刷题....

电面挂

  • Facebook
  • Linkedin
  • Airbnb (一共两面,挂在第二面)
  • StackRox
  • Coinbase (直接让你做TripleBytes选择题)

The Maze

定义:

determine whether the ball could stop at the destination.

这里对于stop的判定条件是:球从一个方向朝着end卷过来,能否在end点的下一个位置碰到墙。举个不成立的例子

比如你从左边冲过来,到达了end,虽然end点的上下两头都有墙,但右边没有墙,这种就不符合定义。

@tech-cow
tech-cow / 1.md
Created November 26, 2018 04:39

.

class Solution:
def subsets(self, nums):
if not nums: return []
self.res = []
self.dfs(nums, [], 0)
return self.res
def dfs(self, nums, temp, index):
if index == len(nums):
def getHeight(root):
if not root: return 0
left = getHeight(root.left)
right = getHeight(root.right)
return max(left, right) + 1
# n1 -> n2 -> n3
Class Node(self):
def __init__(self, val):
self.next = next
self.val = val
def reverse_list(self, head):
prev = None
cur = head
def find_nearest(arr, target):
l , r = 0, len(arr) - 1
while l + 1 < r:
if arr[mid] == target:
return mid
elif arr[mid] < target:
l = mid
else:
r = mid
#preprocess
def find_first_occ_gd(arr , target):
l , r = 0, len(arr) - 1
while l + 1 < r:
mid = l + (r - l) // 2
if arr[mid] == target:
r = mid
elif arr[mid] < target:
l = mid + 1 #可以不加1,不影响当arr[mid] == target的时候 r = mid的设置
else:
r = mid - 1 #可以不减1,不影响当arr[mid] == target的时候 r = mid的设置