楼主:
fshfsh (鱼~*)
2022-10-06 07:56:31※ 引述《goodson (blahblah)》之铭言:
: 最近一次面到刷题的公司...感觉已经走火入魔了,
: 考试考到难的程度,比 Google 还难
: 去年就面过一次,当时考题 Easy ~ Medium
: 隔了一年还在找人,人资看我资历主动邀我面试,
: 却考得更难...有真心要找可以解决问题的人吗?
: 都没有照照镜子,贵司的薪水可以比 G 还高吗?
: 我考得过 Hard,还需要领你这 120 万左右年薪?
: 我近十年经验,可以拿出数十万下载量
: 还在线的作品不被重视,
: 却考 Hard 难度的考题来羞辱人浪费我的时间,
: 我看了考题十分钟就 submit 不爽写了。
: 当然这样的状况不只一间公司,
: 我就不指名道姓了
: 大概是被刷题进去的人占到主管位,
: 所以也就信刷题这一套。
: 但我的疑问是,刷题进去的人,
: 到底产出如何? 只会写那些数学题型类似的算法,
: 对于实作没有足够经验,到底可以做出什么啊?
: 有没有人跟刷题派合作过? 真的刷题高分等于强吗?
我亲身经验,刷题非常有用
347 top k frequent elements
23 merge k sorted lists
56 merge intervals
一些基本的工具如 recursion , tree , map , deque ,比较稍微难的像line sweep , biwise
可以说,如果我没碰过这些题目和工具,那么我之前做的东西绝对难产,为什么?
只会array list的人,面对复合型问题时,要怎么写高效能程式?
我曾经看过有人在工作上使用四重巢状循环,要不是那时资料量还非常小,不然我看某时某刻一定会有人该 为什么系统卡住了,不会动也没报错欸,console也没印东西是怎样T^T
我不懂为什么你要因为你解不出来,就否定掉刷题整件事欸
这就好像一个鲁蛇整天怪东怪西,都是they的错
阿你是十年经验强者,是只有几间公司的面试机会吗?
我前同事现在也在挑公司,人家资策会出来的,到现在也才工作三年,怎么现在也是年薪120起跳在挑
(附带一提,我也算是资策会出来的,要说一句昨日我以资策会为荣,今日我以资策会为耻)
那我真的蛮好奇你的十年工作经验到底都在干嘛,怎么跟别人三年差不多
我另一个前同事,在公司待了5年啊,写code能力比我资策会时候一些同学还差,有时候跟他共事都会脑袋充血,写code又慢又一堆漏洞,最后我选择自己写好偷偷盖过去
年资真的在这一行不代表什么,难道Google 微软 Apple那些超级大厂都是老人吗?人家的团队去看照片都年轻的很
对了,再补充你一句,刷题不是考“数学模型”,是时间复杂度和空间复杂度,除非你是在写DP
作者:
Csir (张胖胖)
2022-10-06 08:53:00幸好我while循环每次都不会终止
作者:
Hsins (翔)
2022-10-06 09:53:00资策会不好吗?可以一边工读博士,还行吧><
应该是在讲最近那件事 高XX讨论就跑题了 还是继续战刷题吧
作者: hobnob (hobnob) 2022-10-06 10:13:00
推这篇,我之前真的有一个需求用到了binary search 找index,当时的需求跟题目一摸一样
作者: lchcoding 2022-10-06 10:30:00
西哥你财富自由了,用软件养生...?
想问一下,一般在使用linkedlist我都是Call library,但是leetcode那题merge 2 sorted lists是不是就要自己去设node的class这样才能在实务上用那题的解法?另外想问什么场景你会需要去merge two sorted list
作者:
Hsins (翔)
2022-10-06 11:23:00楼上你这问题要先看是哪个语言的哪个函数库,在实务上能不能那样用,要看那个函式库里怎么去实作 Linked List 和他相关 API 的。以 Java 的 java.util.LinkedList 来说,去检查他实作的程式码,可以知道跟你所说的自己设 node 的 class 也没太大的差别…
作者:
alihue (wanda wanda)
2022-10-06 12:19:00开发搜寻引擎就用得到 merge two sorted list 了
作者:
peter98 (新兵)
2022-10-06 12:22:00merge two sorted list的应用明明很广 别说工作上了 大学课本db课程也有教 DB的external sort就是merge multiple sorted listsarrays啊Lists/arrays当资料量很大 没有辨法一次加载memory时 就可以考虑external sort 而另一种应用则是可以跟map reduce 结合 加速大数据处理 这就是上面说的搜寻引擎 或者recommendationsystem也用的到随便说都能有应用 我是不知道反对刷题的为什么说没用XD搜索引擎还可以往trie延伸 根本说不完
作者:
Hsins (翔)
2022-10-06 12:34:00经验告诉我不少人连 Trie 是什么都不知道, 可能实务上不需要吧...
我没说没用,我自己目前也在刷题,只是目前我的工作没用到,所以才会想问大家场景是什么回h大我是用java没错,我就在想lc的题目大部分input都是head但是java的linkedlist(我记得他好像是doublelinkedlist没错),是不是就是因为他封好了,所以还是自己写node比较适合,不然我也不知道他封好的状况下怎么去做断开link再接上的动作
作者:
peter98 (新兵)
2022-10-06 12:43:00喔 原来是认真发问XD 好的 那我会认真回你 自己写node比较好 练leetcode就是在练功 自己弄node才知道什么情况用dummy head可以省多事
像是leetcode有些design特殊的资料结构,lru我还理解有用,而且还可以去call linkedhashmap但是像是min stack max stack这种,各位前辈有用到过吗?
作者:
peter98 (新兵)
2022-10-06 12:48:00这样对你写tree也有帮助 tree实务上用很广哦 tree相关算法还有DFS/BFS也很广 各个环环相扣 你终究要自己用node写tree的 所以先用node写list吧
作者:
alihue (wanda wanda)
2022-10-06 12:48:00其实搜寻也不是典型的 trie 了,而是为了省内存改用FST ,先用 FST 找到词的 index 位置再去找词。那些 leetcode 的资料结构顶多算是常识,实务上会有更多考量如内存/或是在 disk 的 index 结构、是否 immutable 、cpu overhead等。实务上需要的不是你是否马上知道要用什么,而是你能不能做好的 research 找到最好的算法
作者:
Hsins (翔)
2022-10-06 12:50:00那些知识是在 research 的同时, 用来判断适用性跟文章有没唬烂的…我想 n 想问的是实务上会是要自己写 node 还是怎样,那个要从实务面上评估需不需要调整;如果你想要直接访问操作封装好的 LinkedList 上 Node 的话,是不建议的,因为
作者:
peter98 (新兵)
2022-10-06 12:53:00实务上我是都用lib list(挖鼻孔)
tree的话我知道mysql底层是b+ tree,然后霍夫曼编码也跟二元树有关,另外inordertravesal也可以顺序印出资料,还有什么场景适合自己刻tree吗?以前有个物流前辈说过他用了一堆tree,但他说他不想讲太多,我google搜寻 binary tree real world example也没发现什么,再问问各位前辈了
作者:
Hsins (翔)
2022-10-06 12:55:00他是 private 的,或许可以透过 reflect 魔改(?),但这样就会打破他的权限,不太安全
作者:
alihue (wanda wanda)
2022-10-06 13:00:00实务上如果你越接近开发 infra 才会更容易开发算法,但缺很少,别练了一堆结果去投 web api 的缺
我发现原Po好像就是我提到的仓储物流前辈,不好意思@@
作者:
Hsins (翔)
2022-10-06 13:03:00我是觉得前端也该问啦,有些网站一开起来风扇就在那转不停,开发者工具打开一看,做个排序写了好几层循环、不然就是一直打 API 死循环的…
觉得用 ArrayList 也一样,只是要多维护 head index还比 LinkedList 少存几百万个 next pointer(指上面鸡排例子)不过鸡排摊实体空间限制应该无法一次放几百万片鸡排还是得拆成N万个冷冻柜
作者:
Ekmund (是一只小叔)
2022-10-06 17:28:00tree的话 看过用heap去做timer每个事件设到期时间 根据时间sort底下挂一堆事件这样
作者: superpandal 2022-10-06 18:29:00
我只有一开始工作才一直用ArrayList 而且也稍微会考虑应用情境 除非一直以来都是使用别人的lib/框架 否则要比较好的完成事情肯定会愈来愈深入这些东西不一定刷题才会有 当然你说提早知道如何解刷题是有帮助的 但多半都是应用不到 而且应用场景没连结到你也不一定想得出来可以用某某方式解算是蛮认同实践才是检验真理的唯一标准而且很多内部功能都可以自己实现
作者:
s25g5d4 (function(){})()
2022-10-06 20:23:00推前端考资结,之前写资料视觉化用 DFS 解环,然后副产物(邻接矩阵)交给下一 phase 算排位,还好小时候刷过 UVa
一亿...应该分散在多个城市,变发糖员旅行问题 (无误)
作者: ryan2001 2022-10-06 20:50:00
说实在 这种二元辩论真的没什么意义
作者:
dapple (dapple)
2022-10-06 20:59:00资策会付钱让你去美国念博士回来还不用绑约可以直接跳槽不是很棒吗?
作者:
s25g5d4 (function(){})()
2022-10-06 21:21:00资策会本来定位不就这样?
作者:
oopFoo (3d)
2022-10-06 21:37:00sort 3百万?现在电脑 sort 1亿笔资料也在瞬间而已。有时笨方法不笨因为电脑太快了。
作者:
peter98 (新兵)
2022-10-06 22:41:00sort 1亿笔资料也在瞬间阿 XD 唬烂不打草稿 你的电脑一整套/整批下来要多少钱 才能在不用特殊算法的情况下瞬间sort完1亿笔data?
刷题的至少会 BFS/DFS,实务上很多东西都要碰到 tree然后一堆天才在那边乱写ㄏㄏ
以实务来看,鸡排在放入时排序就好了吧把off line时间考虑进去,就不用太高深的算法了
作者: hank55663 (hank55663) 2022-10-07 13:54:00
一亿笔资料在用n^2排序的做法下要跑一整年欸
作者:
Hsins (翔)
2022-10-07 14:21:00量子电脑啦><
作者: daddy29 (愿上帝与你同在) 2022-10-07 14:57:00
看工作需求程度 有些dp写起来就是简单方便快 分支少前提是你得先懂这个算法
作者: DDR678 (678) 2022-10-07 16:59:00
就推以资策会为耻这句
作者: k798976869 (kk) 2022-10-07 17:47:00
发哥也有在研究量子运算 有兴趣的博士可以去应征而且不用刷题
作者: jerry840622 (小哥) 2022-10-07 18:50:00
刷题很有趣欸 现在看到程式码都会想降低复杂度
作者: ku399999 2022-10-08 00:53:00
前端很多连双for loop写不出来 或Map/Set不会用 都算了fizzbuzz都写错这种的就不要说考这个有什么用了吧...
作者: LincolnBoy 2022-10-08 00:56:00
一亿笔资料只要瞬间 太猛了 我想要那样的电脑
作者:
ADEMAIN (阿德门)
2022-10-08 15:47:00量子电脑XD
团队看照片年轻的很?我在电梯遇到的FTE怎么看起来都4、50岁
作者:
Csir (张胖胖)
2022-10-06 16:53:00幸好我while循环每次都不会终止
作者:
Hsins (翔)
2022-10-06 17:53:00资策会不好吗?可以一边工读博士,还行吧><
应该是在讲最近那件事 高XX讨论就跑题了 还是继续战刷题吧
作者: hobnob (hobnob) 2022-10-06 18:13:00
推这篇,我之前真的有一个需求用到了binary search 找index,当时的需求跟题目一摸一样
作者: lchcoding 2022-10-06 18:30:00
西哥你财富自由了,用软件养生...?
想问一下,一般在使用linkedlist我都是Call library,但是leetcode那题merge 2 sorted lists是不是就要自己去设node的class这样才能在实务上用那题的解法?另外想问什么场景你会需要去merge two sorted list
作者:
Hsins (翔)
2022-10-06 19:23:00楼上你这问题要先看是哪个语言的哪个函数库,在实务上能不能那样用,要看那个函式库里怎么去实作 Linked List 和他相关 API 的。以 Java 的 java.util.LinkedList 来说,去检查他实作的程式码,可以知道跟你所说的自己设 node 的 class 也没太大的差别…
作者:
alihue (wanda wanda)
2022-10-06 20:19:00开发搜寻引擎就用得到 merge two sorted list 了
作者:
peter98 (新兵)
2022-10-06 20:22:00merge two sorted list的应用明明很广 别说工作上了 大学课本db课程也有教 DB的external sort就是merge multiple sorted listsarrays啊Lists/arrays当资料量很大 没有辨法一次加载memory时 就可以考虑external sort 而另一种应用则是可以跟map reduce 结合 加速大数据处理 这就是上面说的搜寻引擎 或者recommendationsystem也用的到随便说都能有应用 我是不知道反对刷题的为什么说没用XD搜索引擎还可以往trie延伸 根本说不完
作者:
Hsins (翔)
2022-10-06 20:34:00经验告诉我不少人连 Trie 是什么都不知道, 可能实务上不需要吧...
我没说没用,我自己目前也在刷题,只是目前我的工作没用到,所以才会想问大家场景是什么回h大我是用java没错,我就在想lc的题目大部分input都是head但是java的linkedlist(我记得他好像是doublelinkedlist没错),是不是就是因为他封好了,所以还是自己写node比较适合,不然我也不知道他封好的状况下怎么去做断开link再接上的动作
作者:
peter98 (新兵)
2022-10-06 20:43:00喔 原来是认真发问XD 好的 那我会认真回你 自己写node比较好 练leetcode就是在练功 自己弄node才知道什么情况用dummy head可以省多事
像是leetcode有些design特殊的资料结构,lru我还理解有用,而且还可以去call linkedhashmap但是像是min stack max stack这种,各位前辈有用到过吗?
作者:
peter98 (新兵)
2022-10-06 20:48:00这样对你写tree也有帮助 tree实务上用很广哦 tree相关算法还有DFS/BFS也很广 各个环环相扣 你终究要自己用node写tree的 所以先用node写list吧
作者:
alihue (wanda wanda)
2022-10-06 20:48:00其实搜寻也不是典型的 trie 了,而是为了省内存改用FST ,先用 FST 找到词的 index 位置再去找词。那些 leetcode 的资料结构顶多算是常识,实务上会有更多考量如内存/或是在 disk 的 index 结构、是否 immutable 、cpu overhead等。实务上需要的不是你是否马上知道要用什么,而是你能不能做好的 research 找到最好的算法
作者:
Hsins (翔)
2022-10-06 20:50:00那些知识是在 research 的同时, 用来判断适用性跟文章有没唬烂的…我想 n 想问的是实务上会是要自己写 node 还是怎样,那个要从实务面上评估需不需要调整;如果你想要直接访问操作封装好的 LinkedList 上 Node 的话,是不建议的,因为
作者:
peter98 (新兵)
2022-10-06 20:53:00实务上我是都用lib list(挖鼻孔)
tree的话我知道mysql底层是b+ tree,然后霍夫曼编码也跟二元树有关,另外inordertravesal也可以顺序印出资料,还有什么场景适合自己刻tree吗?以前有个物流前辈说过他用了一堆tree,但他说他不想讲太多,我google搜寻 binary tree real world example也没发现什么,再问问各位前辈了
作者:
Hsins (翔)
2022-10-06 20:55:00他是 private 的,或许可以透过 reflect 魔改(?),但这样就会打破他的权限,不太安全
作者:
alihue (wanda wanda)
2022-10-06 21:00:00实务上如果你越接近开发 infra 才会更容易开发算法,但缺很少,别练了一堆结果去投 web api 的缺
我发现原Po好像就是我提到的仓储物流前辈,不好意思@@
作者:
Hsins (翔)
2022-10-06 21:03:00我是觉得前端也该问啦,有些网站一开起来风扇就在那转不停,开发者工具打开一看,做个排序写了好几层循环、不然就是一直打 API 死循环的…
觉得用 ArrayList 也一样,只是要多维护 head index还比 LinkedList 少存几百万个 next pointer(指上面鸡排例子)不过鸡排摊实体空间限制应该无法一次放几百万片鸡排还是得拆成N万个冷冻柜
作者:
Ekmund (是一只小叔)
2022-10-07 01:28:00tree的话 看过用heap去做timer每个事件设到期时间 根据时间sort底下挂一堆事件这样
作者: superpandal 2022-10-07 02:29:00
我只有一开始工作才一直用ArrayList 而且也稍微会考虑应用情境 除非一直以来都是使用别人的lib/框架 否则要比较好的完成事情肯定会愈来愈深入这些东西不一定刷题才会有 当然你说提早知道如何解刷题是有帮助的 但多半都是应用不到 而且应用场景没连结到你也不一定想得出来可以用某某方式解算是蛮认同实践才是检验真理的唯一标准而且很多内部功能都可以自己实现
作者:
s25g5d4 (function(){})()
2022-10-07 04:23:00推前端考资结,之前写资料视觉化用 DFS 解环,然后副产物(邻接矩阵)交给下一 phase 算排位,还好小时候刷过 UVa
一亿...应该分散在多个城市,变发糖员旅行问题 (无误)
作者: ryan2001 2022-10-07 04:50:00
说实在 这种二元辩论真的没什么意义
作者:
dapple (dapple)
2022-10-07 04:59:00资策会付钱让你去美国念博士回来还不用绑约可以直接跳槽不是很棒吗?
作者:
s25g5d4 (function(){})()
2022-10-07 05:21:00资策会本来定位不就这样?
作者:
oopFoo (3d)
2022-10-07 05:37:00sort 3百万?现在电脑 sort 1亿笔资料也在瞬间而已。有时笨方法不笨因为电脑太快了。
作者:
peter98 (新兵)
2022-10-07 06:41:00sort 1亿笔资料也在瞬间阿 XD 唬烂不打草稿 你的电脑一整套/整批下来要多少钱 才能在不用特殊算法的情况下瞬间sort完1亿笔data?
刷题的至少会 BFS/DFS,实务上很多东西都要碰到 tree然后一堆天才在那边乱写ㄏㄏ
以实务来看,鸡排在放入时排序就好了吧把off line时间考虑进去,就不用太高深的算法了
作者: hank55663 (hank55663) 2022-10-07 21:54:00
一亿笔资料在用n^2排序的做法下要跑一整年欸
作者:
Hsins (翔)
2022-10-07 22:21:00量子电脑啦><
作者: daddy29 (愿上帝与你同在) 2022-10-07 22:57:00
看工作需求程度 有些dp写起来就是简单方便快 分支少前提是你得先懂这个算法
作者: DDR678 (678) 2022-10-08 00:59:00
就推以资策会为耻这句
作者: k798976869 (kk) 2022-10-08 01:47:00
发哥也有在研究量子运算 有兴趣的博士可以去应征而且不用刷题
作者: jerry840622 (小哥) 2022-10-08 02:50:00
刷题很有趣欸 现在看到程式码都会想降低复杂度
作者: ku399999 2022-10-08 08:53:00
前端很多连双for loop写不出来 或Map/Set不会用 都算了fizzbuzz都写错这种的就不要说考这个有什么用了吧...
作者: LincolnBoy 2022-10-08 08:56:00
一亿笔资料只要瞬间 太猛了 我想要那样的电脑
作者:
ADEMAIN (阿德门)
2022-10-08 23:47:00量子电脑XD
团队看照片年轻的很?我在电梯遇到的FTE怎么看起来都4、50岁
作者: zo4j4 (happiness) 2022-10-15 17:11:00
资策会出来真的强的能用的少数,不要误导大家...
作者: zo4j4 (happiness) 2022-10-15 09:11:00
资策会出来真的强的能用的少数,不要误导大家...
重点不在于你在工作中会不会开发算法 而是在于程式语言都帮你包装好的API 你有没有这个知识判断使用哪样的资料结构跟算法对效能比较好 如果你连这些基础知识都不知道要怎么样优化效能?