📣 独立日限时特惠: VIP通行证立减$68
楼主: Sabrina_0413
跳转到指定楼层
上一主题 下一主题
收起左侧

今天开始刷题!希望自己可以坚持下去

 
🔗
 楼主| Sabrina_0413 2018-3-19 08:59:07 | 只看该作者
全局:
3月18:medium:173;199;222;230;236
173 Binary Search Tree Iterator    :该类函数定义的问题不是很熟悉,要多练习.
222. Count Complete Tree Nodes。(1)2的n次方可计算为:1<<n(速度不快)。n的2次方可表达为:n<<1。若perfect tree的高度为n,则其节点个数为:1+2+4+8+。。2^(n-1)=2^n-1=(1<<n)-1.(2)本题的思路是定义一个函数计算数的高度,然后调用函数比较左分支和右分支的高度:若左分支高度等于右分支,则说明左分支为perfect tree,此时只需要计算右分支的节点总数即可;若左分支大于右分支,则说明右分支为perfect tree,此时只需要计算左分支的节点总数。依次循环。
230. Kth Smallest Element in a BST. 方法一:DFS。从最小的开始,依次累加,到K时,返回值。方法二:recursion。定义一个计算node个数的函数。将tree一分为二,先判断Kth在左右还是右边。方法三:调用inorder()将tree的值放进列表中,返回列表的第k-1个值
236. Lowest Common Ancestor of a Binary Tree.(1)用recursion的方法,判断root in (None,q,p) or not。(2)stack==>目前我的这个方法有bug,正在debug中。。。
回复

使用道具 举报

🔗
 楼主| Sabrina_0413 2018-3-19 09:16:04 | 只看该作者
全局:
236.刚看到一个很赞的方法。定义一个hashtable={node:node.parent},用DFS的方法,将node放入hashtable中,并记录下他们的parent,直到q和p都放进去为止。然后定义一个set(),找出q的所有parent,再找出q与p的共同parent。~~这里hashtable={node:node.parent}的方法可以应用到其他地方。
回复

使用道具 举报

🔗
vtiaocao 2018-3-19 11:01:42 | 只看该作者
全局:
Sabrina_0413 发表于 2018-3-18 16:56
Soga,说明你已经过了面试,好赞!哪家?
我得好好加油啦啦啦啦啦~!

我小黑屋满一年了……
回复

使用道具 举报

🔗
 楼主| Sabrina_0413 2018-3-19 11:07:58 | 只看该作者
全局:
NewRita 发表于 2018-3-19 00:34
我也在刷题,给你点个赞,一起加油

谢谢~!加油~!!
回复

使用道具 举报

🔗
 楼主| Sabrina_0413 2018-3-19 11:09:14 | 只看该作者
全局:
vtiaocao 发表于 2018-3-19 11:01
我小黑屋满一年了……

。。。虽然不知道你之前被哪个公司小黑屋了,但是。。(๑•̀ㅂ•́)و✧加油!
回复

使用道具 举报

🔗
 楼主| Sabrina_0413 2018-3-20 09:43:09 | 只看该作者
全局:
3月19日:
337;449;450;508
337:高票答案很赞~!
A.strip('!')=> 用于移除字符串头尾指定的字符(默认为空格)  a.split('!')==>通过指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子字符串。
回复

使用道具 举报

🔗
vtiaocao 2018-3-20 09:49:42 | 只看该作者
全局:
Sabrina_0413 发表于 2018-3-19 17:43
3月19日:
337;449;450;508
337:高票答案很赞~!

加油加油!
回复

使用道具 举报

🔗
 楼主| Sabrina_0413 2018-3-21 09:01:42 | 只看该作者
全局:
3月21日:513;515;623;654
515. Find Largest Value in Each Tree Row: (1)若是需要把数分层解决的问题,可以定义一个stack和temp。stack用来放current level,temp用来放下一个level的节点;(2)定义无限小:maxnum=float('-inf')
513:这道题有个小技巧:BFS, Right to left,queue==》queue的最后一个node就是需要的值
623:本题的关键是找到需要插入的那一层。用BFS或DFS,定义queue或stack=[(node,level)]
654. Maximum Binary Tree.方法一:recursion,比较直接,但效率低。方法二:定义stack来存储节点,遍历nums,该方法比较有意思,多回顾一下。
回复

使用道具 举报

🔗
 楼主| Sabrina_0413 2018-3-21 22:03:22 | 只看该作者
全局:
2017年3月21日。652;662
除了一道不喜欢的题,今天算是把Tree下面的easy和medium都刷完啦,明天开始刷Two Pointers。下面是关于tree的一些总结:
总结
1.Tree的分类。(1)普通的数;(2)completed Tree:除了最后一层,所有的父节点都有两个子节点。相关的题是计算节点个数。技巧是:先计算出来height,然后将问题分解:父节点+左subtree节点个数+右subtree节点个数==》可以通过比较左右的height,来判断其是否为perfect Tree。若perfect tree的高度为n,则其节点个数为:1+2+4+8+。。2^(n-1)=2^n-1=(1<<n)-1. (3)Binary search Tree:Morris Traveral的方法可以使BST变为root为最小,依次连接右节点,值依次变大。
2. Tree的遍历方法:(1)recursion;(2)DFS:定义stack;(3)BFS:定义queue
3. Tree遍历的次序:Inorder Traversal:left->root->right.      Preorder Traversal: root->left->right;     postTraversal: left->right->root;
4. tree分层遍历的方法:定义一个temp=[],先遍历上一层的节点(在一个array,如stack中),然后将子节点放入temp中,等上一层遍历结束后,让stack=temp
5. array在Tree中的应用。一般是stack和queue,用于存储节点进行遍历。同时,array可定义为stack=[(node,other information)],other information可以为sum相关值、node的父节点、或者node之前的路径及路径个数、或者node的level等等。
6. hashtable在Tree中的应用。如hashtable={node:[node.parent]}
7. Tree的每个节点位置特点。假设父节点的位置为P,则左子节点的位置为P*2,右子节点的位置为P*2+1。一层的距离为P(mostright)-P(mostleft)+1
其他:
1. 寻找元素位置:n=inorder.index(item),其中inorder为array;
2. maxfre=max(hashtable.values()))。注意hashtable.values()和hashtable.items().
3.count = collections.Counter(),与hashtable相比,count不用判断值是否存在与count中,可直接count[item]+=1.
4. A.strip('!')=> 用于移除字符串头尾指定的字符(默认为空格)  a.split('!')==>通过指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子字符串
5.定义无限小:maxnum=float('-inf')
6. sorted_dic=sorted(dic.items(),key=lambda x:(-x[1],x[0]),reverse=False)==>sorted_dic为set
7. temp=[2,5,1,6],若令L=temp,则temp改变时,L也将随着改变。L[0::]=temp[0::],此时,temp改变时,L不会改变。
回复

使用道具 举报

🔗
vtiaocao 2018-3-21 23:10:24 | 只看该作者
全局:
Sabrina_0413 发表于 2018-3-21 06:03
2017年3月21日。652;662
除了一道不喜欢的题,今天算是把Tree下面的easy和medium都刷完啦,明天开始刷Two  ...

赞~我觉得recursion应该也算dfs哦
回复

使用道具 举报

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

本版积分规则

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