一亩三分地

 找回密码 注册账号

扫描二维码登录本站

BBS
Offer多多
Salarytics
交友
Learn
Who's Hiring?
Visa Tracker
疫情动态
指尖新闻
Instant
客户端
微信公众号
扫码关注公众号
留学申请公众号
扫码关注留学申请公众号
Youtube频道
留学博客
关于我们
查看: 4298|回复: 81
收起左侧

2020秋招-刷题

[复制链接] |只看干货 |打卡, 打卡组队
我的人缘0

升级   11.29%


分享帖子到朋友圈
本楼: 👍   100% (1)
 
 
0% (0)   👎
全局: 👍   100% (24)
 
 
0% (0)    👎

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?注册账号

x
之前一直自闭刷题,容易懈怠。现立贴监督自己。当前状态: 182/1340,很大一部分都是以前做的没什么印象了,需要重刷。
目标: 每日3题及题目分析。 分析十分重要,一道题能够从头到尾把逻辑理清才算是理解了。



欢迎地里的朋友们监督


上一篇:有组团share leetcode/lintcode账户的小伙伴吗
下一篇:case interview面试练习一对一组队
我的人缘0

升级   11.29%

 楼主| zjy1825945 2020-4-1 12:42:15 | 显示全部楼层
本楼: 👍   100% (1)
 
 
0% (0)   👎
全局: 👍   100% (24)
 
 
0% (0)    👎
03/31/2020

257M, 46M, 47M, 77M, 39M, 40M, 216M
明天的面试加油啊!
回复

使用道具 举报

我的人缘0

升级   11.29%

 楼主| zjy1825945 2020-3-17 11:25:31 | 显示全部楼层
本楼: 👍   100% (1)
 
 
0% (0)   👎
全局: 👍   100% (24)
 
 
0% (0)    👎
03/16/2020

23H, 264M, 313M, 263E, 1201M
今天被ugly number ugly了一天,丑哭了。大概总结一下 ugly number II 比价方便的办法是用 3 pointers - time: o(n), 但是我还是比较喜欢用heap 实现,time: O(n lgn),但是代码看起来比较elegant。同样的对于 super ugly number, 用的dp 的方法思路和 ugly number II 是一样的,time: O(nk)m, 用heap 也可以实现,time: O(nk*lg(nk))
回复

使用道具 举报

我的人缘0

升级   47.5%

本楼: 👍   100% (1)
 
 
0% (0)   👎
全局: 👍   100% (23)
 
 
0% (0)    👎
zjy1825945 发表于 2020/03/02 11:21:05
03/01/2020

今天学习状态很差,感觉原因多半是昨晚没休息好...
1366m, 33m, 81m。 今天...
离口的card里有三个模版
回复

使用道具 举报

我的人缘0

升级   11.29%

 楼主| zjy1825945 2020-2-8 14:01:35 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (24)
 
 
0% (0)    👎
本帖最后由 zjy1825945 于 2020-2-8 14:02 编辑

02/07/2020
200M. Number of islands. 这题的思路是数出每块陆地所相连的陆地,并且用visited标记他们。用的方法是 dfs。同样尝试了union-find 并查集来做,time limit exceeded.

104E. Maximum Depth of Binary Tree. 这题用的方法是dfs,经典的dfs套路。 进入dfs函数后 给定跳出recursion的调节, if ... return ... 。然后要确定好正常recursion的内容要返回什么。这题要找出左边树和右边树最大深度,因此需要return max(...).
108E. Convert Sorted Array to Binary Search Tree. 这题的难点在于,如何用主函数本身进行recursion, 这也是每次做dfs要判断的事: 用主函数recursion还是再写一个dfs函数来做recursion。如果这题要写一个def dfs(nums, TreeNode), 很难写出来主函数进入dfs函数的初始状态。因此选择直接在主函数创建一个treenode,并且定义left和right进行recursion,在函数尾把node return。




回复

使用道具 举报

我的人缘0

升级   11.29%

 楼主| zjy1825945 2020-2-10 12:28:35 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (24)
 
 
0% (0)    👎
02/09/2020
昨天参加hackthon去了,通了一宵,到今晚饭点才起来。强行刷了几道题,效果不是特别好。以及昨天02/08/2020 没做的部分需要明天补上。

105M, 106M, 889M. 三道题都是给 inorder/preorder/postorder 其中的两个来创建一个binary tree.
preorder = root, left, right. inorder = left, root, right. postorder = left, right, root.
这里面preorder+inorder是最符合我思路的: 每次从preorder pop 第一个, 然后在inorder中查找,左边是left, 右边是right.

明天看花花酱的视频把二叉树和这几道题的recursion及循环方式搞清楚。
以及理解在recursion中用(i,j) 和输入(preorder[:i] 两者有无区别。
回复

使用道具 举报

我的人缘0

升级   11.29%

 楼主| zjy1825945 2020-2-11 12:37:06 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (24)
 
 
0% (0)    👎
本帖最后由 zjy1825945 于 2020-2-11 12:41 编辑

02/10/2020

复习总结:105M, 106M, 889M (Construct a binary tree from preorder/inorder/postorder )
新题:109M, 110E, 111E, 112E, 113M, 437E (path sum I, II, III)

总结1:  Construct a binary tree from preorder/inorder/postorderpreorder = [root, (left), (right)]; inorder = [(left), root, (right)]; postorder = [(left),(right),root]
整体思路为: 找到 node.val , 然后找到node.left 和 node.right。
  • preorder + inorder: 选取pre[0]来新建一个treenode, 并且找到pre[0] 在inorder列表中的index. 所以node.left --> inorder[:index], node.right --> inorder[index+1:]
  • postorder + inorder: 选取post[-1]来新建一个treenode, 并且找到post[-1] 在inorder列表中的index。 所以node.right --> inorder[index+1:], node.left --> inorder[:index]。 这里注意, 因为每次都是取post中的最后一位,所以会先取到post中(right)的部分,因此要先给node.right 赋值。
  • preorder + postorder: 选取pre[0] 来新建一个treenode,这个值必然是post[-1]. 然后重点来了。进入preorder的(left)部分后,(left)也可以视为(left) = (root', (left)', (right)' ), 同样 post 的(left) 部分也可以视为(left) = ( (left)', (right)' , root')。 因此pre-left 的一个值即为 post-left的最后一个值, 这样就可以把(left) 和(right)区分开来了。 方法为 找到pre[1] 在post的位置,然后 post[:index+1] 为node.left, post[index+1:]为node.right.
总结2: path sum I,II,III
经典dp题。要逼自己用三种方法做。分别是DFS, DFS+Stack, BFS+ Queue.  

总结3: 109 convert sorted list to binary search tree
这个题和108的sorted array 差挺多的。108用二分直接可以找中间值了。 109找中间值要用slow, fast找。什么时候next 什么时候next.next 要搞清楚。以及while 循环的判断条件也要分辨清。

总结4: 110 balanced binary tree 需要重新做一遍。
总结5: 111 BFS题。这道题做的时候,好就好在一眼就看出来是用BFS写的,小夸一下自己。但是问题在于,BFS太久没有写过,没有反应过来是用queue来保存和读取的。同样是用BFS和DFS各做了一遍。
回复

使用道具 举报

我的人缘0

升级   11.29%

 楼主| zjy1825945 2020-2-12 12:37:27 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (24)
 
 
0% (0)    👎
02/11/2020

666M. Path Sum IV. 这道题感觉考的不是binary tree 和 dfs了,更多考的是数学, 见话来讲就是一个三位数如何提取它的百位数、十位数和个位数。 相比前几个path sum 来说更加简单了。
695M. Max Area of island. 这道题和 200M. Number of island 有点相似,都可以用dfs解决。 做695的时候,看了discussion发现可以不用创建visited 来存储访问记录,只需要把访问过的grid[j]置为0就好了。于是回去重新尝试做200, 果然也是行得通的。

463E. Island Perimeter. 这题十分简单,只要跑一个iteration就好了。就数周围有几个陆地,然后用4减去就好了。
99H. Recover Binary Search Tree. 还没做出来....看了解答后明天尝试做做看。

分享昨天看到的执中学长的几句话,共勉 。 https://weibo.com/2103197132/ItGzsoeqf
回复

使用道具 举报

我的人缘0

升级   11.29%

 楼主| zjy1825945 2020-2-13 13:06:42 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (24)
 
 
0% (0)    👎
02/12/2020
做了一晚上的recursion,头都大了。
114M, 430M. 这两道题目都是binary tree 加上 recursion 的题目, 考察点就是recursion的熟练程度。
207M。按照答案写了一下,但是没有理解。明天把这题重点理解。
感觉需要看看youtube上关于recursion的总结。


回复

使用道具 举报

我的人缘0

升级   11.29%

 楼主| zjy1825945 2020-2-14 12:35:50 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (24)
 
 
0% (0)    👎
02/13/2020

116M, 117M 这两道都是用bfs解比较快。最容易想到的方式就是用queue来做bfs。但是follow up 里要求use constant space 所以需要用一个cur来存储当前点,再用dummy来保存头。
133M。 这道题不是特别难。个人认为难点在于把头给保存下来。
回复

使用道具 举报

我的人缘0

升级   11.29%

 楼主| zjy1825945 2020-2-15 12:57:35 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (24)
 
 
0% (0)    👎
02/14/2020

339E. 这道题给了一个自定义的数据类型,难点在于搞清楚这个数据类型是由什么组成的,以及该数据类型的built-in function.
257E. 基础dfs题,一套dfs套路直接带走。
332M. 这一题用backtracking。感觉自己对于回溯的理解还很差,经常不知道要返回什么,以及什么时候返回。找到一个讲的挺好的视频 https://www.youtube.com/watch?v=DKCbsiDBN6c 明天把它看完。
回复

使用道具 举报

我的人缘0

升级   11.29%

 楼主| zjy1825945 2020-2-16 13:39:30 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (24)
 
 
0% (0)    👎
02/15/2020

今天晚上参加了学校cs的networking会,没参加上contest。
51H. N-queen. 这道题正统做法是用dp吧,因为现在是在做backtracking专题,所以尝试用了backtracking来实现,时间复杂度是O(N^2). 因为看了YouTube的视频教学(那位印度老师讲课讲的十分好,很清晰),所以解题思路也比较清晰。虽然没有做到一次bug-free,但是碰到的都是edge problem.
今天做的题目太少了,过两天要多补一补。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

隐私提醒:
■拉群请前往同学同事飞友|拉群结伴版块,其他版块拉群,帖子会被自动删除
■论坛不能删帖,为防止被骚扰甚至人肉,不要公开留微信等联系方式,请以论坛私信方式发送。
■特定版块可以超级匿名:https://pay.1point3acres.com/tools/thread
■其他版块匿名方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

手机版|||一亩三分地

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

Some icons made by Freepik from flaticon.com

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