1 junho 2020-02-29 08:42:33 +08:00 平时会刷算法题 |
![]() | 2 AslanFong 2020-02-29 08:47:19 +08:00 ![]() 你以前考试都不复习吗? |
![]() | 4 20015jjw 2020-02-29 09:07:06 +08:00 via Android 在意就刷 随便过不过练手就不刷 |
![]() | 5 siriussilen 2020-02-29 09:17:54 +08:00 已经刷了三个月,可是依旧对面试很焦虑 ![]() |
![]() | 6 siriussilen 2020-02-29 09:20:06 +08:00 ![]() 我是信管相关专业的,leetcode 全站排名从 40000+刷到了 800+,有些刷过的题还是会忘掉,得二刷 三刷才能真正融会贯通,可是最近就要实习生招聘了,真的很慌。 |
![]() | 7 AngryMagikarp 2020-02-29 09:26:35 +08:00 从来不刷,还不如把在之前公司做的项目再仔细回想一遍。 |
![]() | 8 NoString 2020-02-29 09:58:34 +08:00 周五在上班 周六早面试 别说复习 连自己项目的 bug 没改完就去面试,然后挂的非常和谐,不忍心再伤害面试官(菜字当头还不复习的后果) |
![]() | 9 xyooyx 2020-02-29 10:01:20 +08:00 保持危机感,上班期间坚持学习 |
![]() | 10 hyy1995 2020-02-29 10:04:25 +08:00 必然会刷面试题的,但刷面试题之前,你得充分理解自己做的项目,这个比刷面试题重要。现在的面试真的跟入职做的东西是两码事,为了筛人,面试越来越像考试了… |
![]() | 11 cxshun 2020-02-29 10:04:26 +08:00 之前不刷,也不复习,后面去面了几次,被一些基础题啥的虐了之后,我现在坚信面试前一定要复习一下,包括你项目中用到的所有技术,遇到过的所有问题,都要回顾一遍。 这样胸有成竹在谈价的时候也有底气 |
![]() | 12 haosamax 2020-02-29 10:13:18 +08:00 感觉 算法好难啊!别的基础知识可以背一背,算法真的就不会,就会背个二分查找、冒泡排序 |
![]() | 14 jackchao7432 2020-02-29 10:31:43 +08:00 @AngryMagikarp 可能你没有去比较大的互联网公司面试过吧,哈哈 |
![]() | 15 watzds 2020-02-29 10:33:04 +08:00 via Android 太懒了,真没动力刷题,上学时也是,但是又吃亏 |
16 charlie21 2020-02-29 10:40:19 +08:00 via iPhone 拳不离手 曲不离口 |
![]() | 17 lee015 2020-02-29 10:41:29 +08:00 via Android 非算法技术岗而言,基础肯定是要复习的,基础答不好一面容易挂。工作年限多项目经验丰富的话算法要求低一些,二分、冒泡、快排、链表 /二叉树遍历理解透彻基本就够了,总结项目相关技术。工作年限少的尤其应届生,那是要更高的算法要求,可以刷刷 leetcode 这些 |
![]() | 18 hxtheone 2020-02-29 10:58:29 +08:00 每周一次 leetcode contest 就当练手了 |
![]() | 19 qiushaox 2020-02-29 11:08:04 +08:00 via iPhone 算法基础知识要刷,同时也要加深设计模式,软件架构设计的理解。只知算法,没有架构设计思想的人,往往只见树木,不见森林。 |
20 Sniper416 2020-02-29 11:09:16 +08:00 那是肯定的,谁没事会在工作中手写 vue、promise。 |
![]() | 21 alphatoad 2020-02-29 11:25:41 +08:00 字节跳动的题还是有意思的,没 Google 那么恶心( 60 分钟三道 bugfree 真的没时间),也没 IBM 那么没水平( 180 分钟三道 lc easy 难度,没劲) |
![]() | 22 PanJiaChen 2020-02-29 11:31:04 +08:00 面试前不刷题,这不是对面试官的不尊重么。。。。 裸造航母还是挺难的。 |
![]() | 23 zzzzzzggggggg 2020-02-29 11:59:09 +08:00 打篮球正式上场前两天不也需要打个热身赛么?上场前还得做好热身,不然容易崴脚 |
![]() | 24 glumess 2020-02-29 13:56:41 +08:00 当然刷啦,除了准备项目经历,程序员必备的基础题目都还得准备一下。看面试题就好比高考前那以前做过的题目在复习看一看 |
25 GrayXu 2020-02-29 14:24:44 +08:00 \刷…权当抱佛脚 |
26 aguesuka 2020-02-29 14:25:31 +08:00 写过需要算法的项目后,发现刷算法题是一个性价比非常低的事情。 比如我需要一个数据结构,操作只有 3 种,就是增加,删除和无序遍历。刷算法题的经验告诉我这种东西最适合用双向链表做,增加时返回 node,删除时移除 node,遍历写个 for 循环就行。增加删除的复杂度是 O ( 1 ),遍历的复杂度是 O ( n ).可再我使用的实际场景种还不如一个数组,时间复杂度是 O ( n )的根据下标增加和删除,因为在我这个量级创建对象的时间更慢(论坛里曾有人说绝对不要使用 LinkedList 时,我曾经很不屑)。而实际上,有个《数据结构》里没有的数据结构可以用 Array 来完成 O(1),O(1)的按下标删除和增加。 最后我选择了用 HashSet,不是应为它最快,而是因为它不需要保存下标或者 node 等待删除时使用,避免让程序变得复杂。 |
![]() | 27 tilv37 2020-02-29 15:11:57 +08:00 我的话肯定得刷题的。 先刷基础知识,JVM、数据结构、常规算法、设计模式、网络之类的。然后结合自己的项目吧这些点都套进去,尽量做到言之有物。 然后就是看投的岗位有啥需求了,再针对性的开口平时不怎么掌握和使用的,做到基本了解就行了 |
![]() | 28 jellybool 2020-02-29 16:55:54 +08:00 via Android @siriussilen 竟然看到信管专业的人!世界真小 |
![]() | 29 20015jjw 2020-02-29 17:35:18 +08:00 via Android @aguesuka 算法题目的只是为了面试考察而已 不是为了让你在实际 project 里用的 重点在于考察解题能力 沟通能力 和 写码能力 |
![]() | 30 helloworld000 2020-02-29 20:43:14 +08:00 刷题这些东西就跟健身跑步一样,没事都可以搞一搞 @aguesuka 比如我需要一个数据结构,操作只有 3 种,就是增加,删除和无序遍历。刷算法题的经验告诉我这种东西最适合用双向链表做,增加时返回 node,删除时移除 node,遍历写个 for 循环就行。增加删除的复杂度是 O ( 1 ),遍历的复杂度是 O ( n ). 我觉得你肯定刷的不够好,因为你这个需求是个很典型的 LRU cache,需要 doubly-linked list + hashmap,就能实现 O(1) 的增加和删除还有搜索 ``` 可再我使用的实际场景种还不如一个数组,时间复杂度是 O ( n )的根据下标增加和删除,因为在我这个量级创建对象的时间更慢` `` 因为你的场景 scalablity 还不够大,如果大的话就是会有影响 |
![]() | 31 onfuns 2020-02-29 21:03:33 +08:00 知识都是碎片化的,面试问题大部分都是理论,实际项目中基本不用或者用的不多,就是背的知识,不刷怎么过。 |
![]() | 32 tinyhill 2020-02-29 21:15:05 +08:00 作为面试官的人告诉你,刷题,是很容易被面出来的。一般答题如背书的,都会谨慎考虑。刷题可以,内化是关键。 |
33 anonymousUser123 2020-02-29 21:27:56 +08:00 ![]() 怎么楼上大部分都只说刷算法题,是太多人没有经历过现在的面试吗。。。。 现在面试除了算法题还会问其他这些啊 https://www.bilibili.com/video/av48988279 volatile 不保证原子性,指令重排 CAS 底层原理 原子引用 锁的底层 JVM 底层 等等 这些平常写业务很难接触到啊, 即使业余有学习,学完以后也容易忘啊 面试当然要前做个重点回顾啦。 |
![]() | 34 windliang PRO 现在每天也都刷刷 leetcode,顺序刷题目前到 239 了,每道题都记录了详细思路,分享一下 https://leetcode.wang/ |
35 kevincai100 2020-02-29 22:07:27 +08:00 现在面试真的像造火箭,挺难的 |
36 aguesuka 2020-02-29 23:13:41 +08:00 @helloworld000 leetcode 这么靠前的题。 不过你想复杂了。首先我不需要排序,其次我的接口可以这么写 T add(E elment); boolean remove(E element, T token);类似 js 的 setTimeout 和 clerTimeout 函数。还有个隐藏条件是一个 elenment 只会 add 一次,容器只会被遍历一次。 最快的方法是使用一个 Array 和一个 Stack,Array 在没有元素被删除的时候正常增加,有元素被删除的时候把被删除元素下标保存到 Stack 里面,如果 Stack 不为空,则增加时优先使用 Stack 里的下标。不过在使用时要考虑的比这个多,要不要实现 Collection 接口,token 保存在哪,遍历时要不要快速失败,如果要改成并发容器需要多大工作量。最关键的是不做基准测试很难知道到底那个实现快,比如你猜同样是 O(1),用链表快还是散列表快。 跑题了,我觉得刷算法题性价比的原因是要花很大精力去写很脏的代码,去实现不灵活的接口,当然学到的经验很宝贵,但是在写代码时只是最基本的素质,而在面试时,手写的代码面试官也不会看,说出原理就行了。 |
![]() | 37 tt67wq 2020-03-01 09:29:20 +08:00 肯定得刷 |