楼主: yloco88
跳转到指定楼层
上一主题 下一主题
收起左侧

弱鸡刷题打卡贴

🔗
 楼主| yloco88 2018-4-8 08:17:06 | 只看该作者
全局:
4.7

654. Maximum Binary Tree

stack 加上 while loop 来找最值

补充内容 (2018-4-9 01:47):
从下往上传值
回复

使用道具 举报

🔗
 楼主| yloco88 2018-4-9 02:25:01 | 只看该作者
全局:
4.8

669. Trim a Binary Search Tree
从上往下 Trim, 每一层recursion都return。 没必要用dummy node的时候别硬用

173. Binary Search Tree Iterator
"Lazy" -- In order traversal 拆成两部分:

1. init时先把所有left node依次推入stack

2. 在每一次next的时候再把当前node的右subtree的left再推入。

回复

使用道具 举报

🔗
 楼主| yloco88 2018-4-12 09:23:43 | 只看该作者
全局:
4.10

238. Product of Array Except Self

两个loop, 第一个LOOP每一个元素乘以自己左边的, 第二个loop每一个元素乘以自己右边的
回复

使用道具 举报

🔗
 楼主| yloco88 2018-4-12 10:46:47 | 只看该作者
全局:
4.11

338. Counting Bits

1维 dp: I位元素看floor(I/2) 位元素,如果是奇数则再加1
loop内用Bitwise operater做除以2比除以2要快! (O(c)操作差距通过for loop放大)


572. Subtree of Another Tree

helper func来决定两个树是否相同,
main里call自己 左子树含有t或者右子树含有t

用不用helper取决于迭代做的事情做的和Main func是不是一样!
回复

使用道具 举报

🔗
 楼主| yloco88 2018-4-13 11:33:23 | 只看该作者
全局:
4.12

121. Best Time to Buy and Sell Stock

初始化: max_profit , min_price = 0 , float('inf')
一个for  loop 在每个iteration:
找出当前最小的price,
计算当前价格减去min_price
找出当前最大的profit
回复

使用道具 举报

🔗
 楼主| yloco88 2018-4-18 11:11:42 | 只看该作者
全局:
本帖最后由 yloco88 于 2018-4-18 11:50 编辑

4.17

Riverbed Python面试题

做一个控制飞机的队列
飞机有两种类型P和C,两种大小L和S
要求:
1. P型优先级高于C型
2. L型优先级高于S型
3. 类型和大小都一样的情况下,先进QUEUE的飞机先出

实现的重点在于利用Python 的sort函数对tuple的处理:
sort会对tuple的每一个元素从左到右依次比较!!

self.queue.put( ((aircraft.get_type(), aircraft.get_size(), time.time()) , aircraft))
Python 2.2+ sorting is stable
https://stackoverflow.com/questi ... rtab=active#tab-top

Old way: list decoration
https://www.linuxtopia.org/onlin ... python_ch20s04.html



476. Number Complement

从最低位bit开始每个bit位与其对应的bit位的1用XOR

| or
& and
^ xor

用 << 来移 bit 1的位置
回复

使用道具 举报

🔗
 楼主| yloco88 2018-4-19 11:04:34 | 只看该作者
全局:
4.18

96. Unique Binary Search Trees

把以下思想化成DP做:

f(n) = f(0)f(n-1) + f(1)f(n-2) + ... + f(n-1)f(0)


108. Convert Sorted Array to Binary Search Tree

preorder traversal

mid = len(num) // 2

        root = TreeNode(num[mid])
        root.left = self.sortedArrayToBST(num[:mid])
        root.right = self.sortedArrayToBST(num[mid+1:])
回复

使用道具 举报

🔗
 楼主| yloco88 2018-4-22 10:40:12 | 只看该作者
全局:
4/21

110. Balanced Binary Tree

take1: 写一个get_height

然后  abs(get_height(root.left)-get_height(root.right)) <= 1 and self.isBalanced(root.left) and self.isBalanced(root.right)

take2: dfs/ post-order traversal
如果unbalanced会更快return而不需要等待所有结果计算完毕
回复

使用道具 举报

🔗
 楼主| yloco88 2018-4-24 10:13:35 | 只看该作者
全局:
4/23

167. Two Sum II - Input array is sorted

上周五一公司ONSITE题目的相似版。 原题是找一对最接近TARGET的值。
因为ARRAY SORTED, 所以充分利用这个性质,一头一尾各一个指针,如果小于TARGET则右移左POINTER, 如果大于TARGET则左移右POINTER.

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表