查看: 3514| 回复: 5
收起左侧

[其他] 刷题的终极目标

孙行者 | 显示全部楼层
本楼:   👍  9
100%
0%
0   👎
全局:   347
82%
18%
75

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

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

x
我刷了快700题,也有面试经验,我得一些心得可以分享一下!喜欢了别忘了加米哈!

刷题是练习把算法原理熟练的运用到实际问题的能力。所以光会做题,不懂算法原理不行;懂算法原理,但是不能灵活运用也白搭。所以,在面试过程中,从题目到答案的逻辑链条千万不能断裂。如果断了,面试官会认为你是在背题,然后又出下一道题考你,时间不多,自然就挂了。

刚开始刷题目的是理解解法,过了这一阶段就要以训练思路为主,还要熟练掌握套路和模块。如果能用完整的逻辑推理得到最佳方案,就算是刷题成功了。

审题:
我有不盘问题目细节就直接做题的失败经验,所以教训很深。千万不要解错题。把题理解透,约束条件都问清楚,反复与面试官核实你的理解。最好你能在黑板上写个例子表达你对题的理解。

方案选择:
题理解透了,一般就能想到几种方案,要说明你选的方案为什么是最优方案。时间复杂度和空间复杂度要很熟。

实现:
要很简单清楚的展现你的解题思路,控制变量的筛选,循环的状态维持(Invariant).
思路清楚了,解题就十来分钟的事情。

这里要用到模块和套路。如果平时训练扎实,运用套路可以减少大脑思考的负担,精力可以放到更容易出错的地方。

疑难解决和升级:
面官很喜欢看你卡壳时的反应。这时候的关键就是把卡壳的模糊地方明确的表现出来,最好能用你审题时的例子分析。
面官要看到你能更进一步优化现有方案。这是个考点。所以解题不要一下子给到最完美的方案,最好能留点讨论和升级的空间。

边界测试:

边界测试一定要做,要能将数据带入循环,查看状态变化过程和最终结果。

老码农都有过度依赖断点测试的懒毛病。这个毛病一定要改。断点测试要在脑子里完成,不是电脑里。

喜欢了别忘了加米哈!





评分

参与人数 24大米 +47 收起 理由
超人96825 + 1 给你点个赞!
codeyy + 1 赞一个
啾咪酱酱 + 2 给你点个赞!
fireooxx + 1 赞一个
ShikiH + 2 很有用的信息!

查看全部评分


上一篇:457. Circular Array Loop 一个疑惑
下一篇:虚心求问-排序题的窍门到底是什么?

本帖被以下淘专辑推荐:

  • · Job|主题: 37, 订阅: 3
silenceleaf 2019-6-8 15:16:19 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   35
100%
0%
0
点赞 楼主分析的很好哈哈
回复

使用道具 举报

sleepywk 2019-6-9 02:46:59 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   13
100%
0%
0
楼主好几条都说的很好。点赞
回复

使用道具 举报

swordcane47 2019-6-15 15:51:30 | 显示全部楼层
本楼:    0
0%
0%
0  
全局:   107
88%
12%
14
谢谢分享!!!
回复

使用道具 举报

Nooooooo 2019-11-19 10:08:54 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   342
100%
0%
0
依赖断点测试。。躺枪了
回复

使用道具 举报

超人96825 2019-11-20 02:16:38 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   97
100%
0%
0
谢谢楼主的信息,不懂就问,给大家加米哈   请问边界测试是什麽?是null, length == 0, recursion边界那种边界测试吗?  还有就是 ‘要能将数据带入循环,查看状态变化过程和最终结果’,是指在IDE中写Main函数debug一遍吗?
回复

使用道具 举报

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

本版积分规则

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