owenzhang的博客

owenzhang的博客

学习笔记和思考感悟

loading
如何当好面试者
如何当好面试者经过对一些面试者的观察,如果有些方面做的更好一点,会大大增加面试的效率,提升通过面试的概率。希望即将参加面试的同学,能够从以下这些点得到帮助。 明确的目标在参加面试之前,要先思考好面试的目的。为什么去面试?即将参加的这场面试,如果通过之后,是否满足你的要求。 如果确定要去参加,要对面试的公司,面试的岗位做些功课。知己知彼百战不殆。了解多一分,过的可能性就大一分。 准备简历简历要包括以下这些内容,而且顺序也依次排列: 姓名,联系方式,面试职位 学习经历和学习过程中获奖情况 工作经历和突出业绩 技术擅长点 其他 宗旨是,让面试官或简历筛选者,能够在几秒钟,就能发掘你,看到你...
如何当好面试官
今年面试的人比较多,加起来快一百人了。由于面试任务比较多,也有越来越多的小伙伴加入了面试官的行列。 总结一些面试相关的方法论,希望新晋面试官有些帮助,最终能高效面试。 必备思维面试官的目标是为组织找到合适的人,一切行为都是围绕这个主体来运作的。我们现在的面试还是类似于考试,这是一种能够在短时间内高效选择到合格面试者的方法。 存在误杀:和高考一样,面试不合格的人,也可能做好招聘岗位的工作。存在可能性,但是我们要通过面试题的设计,让这种概率尽可能小。 面试是为了选人才,不是为了难住面试者。所有的问题都结合面试岗位的要求,如果判断能胜任即可,我们的目的不是考试难倒候选人。 为什么不是一台电脑或...
Leetcode 第133场周赛解题报告
今天参加了leetcode的周赛,算法比赛,要求速度比较快。有思路就立马启动,不会纠结是否有更好的方法或代码可读性。只要在算法复杂度数量级内,基本上是怎么实现快速就怎么来了。 比赛时先看的第二题,一看题就有了思路,直接用的广度优先搜索,写完提交正确。再一看有人都做了3道题了,应该是职业选手了,要多像他们看齐。 之后看第一题,发现直接用贪心就能做,写了个双重循环,一次过掉。 第三题求最优连续子数组和,想到是动态规划。然后在处理代码细节上花了很长时间,中间提交还错了一次,在十一点半左右提交通过。 再看第四题,能想到是trie树和ac自动机,但是我手上没有现成代码,到比赛完也没有完成。 本次比...
Leetcode 第134场周赛解题报告
因为上周日上班,这场比赛没有参加。赛后做了下比赛的题目,前三道题比较常规,第四道题有点特殊,要利用题目给的提示。 第三题在后来思考时,感觉有点「眼熟」,原来是最长公共子序列的变种。学习知识要触类旁通,多思考。很多问题的本质底层都是一个模型。 通过第四题发散想一下,还是能够发现很多有意思的结论,在题解中会详细分析。 思考到最后,甚至想到了极限,量变引起质变。烧脑,头疼,感觉数学知识好匮乏,我要去学习了。 下面是详细的题解和思考。 今天比赛的地址 Weekly Contest 134 https://leetcode-cn.com/contest/weekly-contest-134 1....
Leetcode 第135场周赛解题报告
这周比赛的题目很有特点。几道题都需要找到一定的技巧才能巧妙解决,和以往靠数据结构的题目不太一样。 就是如果懂原理,代码会很简单,如果暴力做,也能做出来,但是十分容易出错。 第四题还挺难想的,想了好久才想明白。这次先讲第四题,然后再讲其他的题目。 下面是详细的题解和思考。 比赛的地址 Weekly Contest 135 https://leetcode-cn.com/contest/weekly-contest-135 移动石子直到连续 II题目:移动石子直到连续 II(Moving Stones Until Consecutive II) 地址: https://leetcode...
Leetcode 第136场周赛解题报告
周日的比赛的时候正在外面办事,没有参加。赛后看了下题目,几道题除了表面要考的内容,还是有些能发散扩展的地方。 做题目不是最终目的,通过做题发现知识盲区,去研究学习,才能不断提高。 理论和实际是有关系的,一些题目也都有现实意义。计算机的一些模拟操作,通过数学算法,能够大大减轻代码量和算法复杂度。 第一题是机器人在坐标系上直走和转弯,通过简单的模拟就能实现。但是仔细思考发现还能通过线性代数,坐标变换的方式做,这样在实际中计算更快。甚至还可以用复数来做。 实际扫地机器人可能就用到了类似的算法。让他能够不至于始终原地打转。 第四题是典型的后缀树、后缀数组应用,找字符串最长重复子串。在搜索引擎,或...
Leetcode 第137场周赛解题报告
今天的比赛的题目相对来说比较「直白」,不像前几周都是一些特定的算法,如果你没学过不可能想出来。 做了这些周,对leetcode比赛的题目也发现了一些「规律」。 一般前两道题都很「简单」,只要有想法,直接敲代码就能解出来。更多考察的是结果是否正确,速度其次。 后两道题有些难度 ,不同场次难度不一样,也可能和不同人的水平感受不同。但是肯定比前两道要难。 一般在做后两道题的时候,只要复杂度是对的,一些细节也不用考虑太多。例如数组开的空间大小,一些线性的提前剪枝判断,写不写都可以过。最主要的是复杂度是同一个量级的。 相信leetcode这么设计是为了「人性化」,让选手更关注比赛题目核心,能够在一...
Leetcode 第138场周赛解题报告
今天的比赛的题目难度没有区分开,考察的不是很全面。题目描述也有些晦涩,考察的点却很简单。 例如第1题题目描述的让人看不清,看懂后发现就是考察个排序,真不知道这种题目出来有什么用途。面试中肯定不会出这种题。 第3题的用例也是错的,为了过掉题目,还要按照「错误的解」来修改程序。 做题的时候还有个插曲,外面下雨了,出去收了会衣服。回来还有时间把所有题目都AC掉。建议后面的比赛要难易结合,考点尽量宽泛些。 不过站在leetcode的角度来说,众口难调,组织这么多次比赛,偶尔出现几次问题也正常,希望后面的比赛越办越好。 下面是详细的题解和思考。 比赛的地址 Weekly Contest 138 ...
Leetcode 第139场周赛解题报告
今天的比赛考固定算法的不多,只有最后一道动态规划的题目稍难一点。其他的题目花些心思,也可以想出来。在面试中如果考察一个人的脑力,前三道题目比较好。都能答出来一些,但是也有优化的空间。 第三题用了很多时间,导致第四题时间都不够了。做比赛和工程还是有差别,应该有思路就敲代码,先把题目过了再说,一些细节不用考虑太多。有些地方不优化也可以过掉。但是在工程上就要考究些,因为代码是在服务器24小时跑,能优化一点点,在海量服务中也能节省很多计算资源。 下面是详细的题解和思考。 比赛的地址 Weekly Contest 139 https://leetcode-cn.com/contest/weekl...
Leetcode 第140场周赛解题报告
今天的题目难度适中。第二道题计算排列数,实际上是有优化方法的,但是题目的测试数据比较宽松,暴力就可以过掉。 今天比赛的主题可以归纳为「暴力」,都用最直白,最直接的方法,都可以过掉题目。 在实际编程工作中,大多数是把一个模型实现为程序,用所谓「直白」的方法。 有一种方法论,叫做先实现,再优化。先想办法实现,保证正确性,然后再逐渐优化,让性能越来越好。性能优化到什么样才停止呢?满足当前要求就可以停止。因为性能优化也是要付出代价和成本的,「够用」最好。当然要有技术储备,当需要进一步优化的时候能够立刻去做。 做比赛也是一样,能够在有限的时间内,在题目的要求下,过掉题目是最好的。至于最优算法,可以...
avatar
owenzhang
一个热爱学习和生活的程序员大叔