程序员如何准备面试中的算法

2022-03-21
阅读 3 分钟
1.5k
我负责公司的面试已经有 5 年以上了,基本都是初面和二面,因此技术面试的层面比较深,更多的是了解候选人的技术能力是否达标。在这几年时间,我前前后后也面试了很多的候选人。这些人中有的技术能力不行,但也有些人很可惜,技术能力是可以的,但是却没能通过我的面试,为什么呢?

听说逆向思维能够降低时间复杂度?

2022-01-28
阅读 5 分钟
2.8k
以终为始在日常生活中指的是先确定目标,再做好计划。之前读管理学的书的时候,学到了这个概念。而在算法中,以终为始指的是从结果反向推,直到问题的初始状态。那么什么时候适合反向思考呢?一个很简单的原则就是:正向思考的情况比较多代码比较难写或者算法复杂度过高这个时候我们可以考虑反向操作。我的习惯是如果直...

区间算法题用线段树可以秒解?

2021-12-16
阅读 7 分钟
5.2k
区间算法题用线段树可以秒解?背景给一个两个数组,其中一个数组是 A [1,2,3,4],另外一个数组是 B [5,6,7,8]。让你求两个数组合并后的大数组的:最大值最小值总和这题是不是很简单?我们直接可以很轻松地在 $O(m+n)$ 的时间解决,其中 m 和 n 分别为数组 A 和 B 的大小。那如果我可以修改 A 和 B 的某些值,并且我要求...

如何准备算法竞赛?

2021-11-19
阅读 3 分钟
4.1k
如果你想参加算法竞赛的建议越早越好。大一或者更早就需要准备起来了。如果你已经快毕业了,那就没有必要准备了,当做兴趣参加一些力扣的比赛也是不错的。

面试中图论都考什么?这篇文章告诉你!

2021-11-09
阅读 23 分钟
5.4k
图论〔Graph Theory〕是数学的一个分支。它以图为研究对象。图论中的图是由若干给定的点及连接两点的线所构成的图形,这种图形通常用来描述某些事物之间的某种特定关系,用点代表事物,用连接两点的线表示相应两个事物间具有这种关系。

《算法通关之路》邀请你来试读

2021-10-25
阅读 3 分钟
3.4k
第 6 章二分法,虽然二分法是一个比较经典的算法,但对于大部分人一直是个头痛的问题。我每次刷 LeetCode 的时候,常常看不出来要使用二分法,或者知道要用二分法,但花了很长的时间在调试二分法的边界问题。通过学习此章很大程度上解决了我的烦恼,让我对二分法有了全方面的了解。它从二分法的经典问题开始讲起,再到后...

聊聊刷题中的顿悟时刻

2021-10-20
阅读 5 分钟
2.8k
和几位一直坚持刷题好朋友讨论了一下刷题的顿悟时刻,他们几位大都取得了不错的 offer,比如 Google 微软,Amazon,BAT 等。

有了这个可视化插件,刷题调试更轻松

2021-09-27
阅读 2 分钟
2.8k
学习算法的基本思路就是:先学习算法思想,然后通过做题消化思想,并在做题过程中慢慢学习,掌握一些小技巧。这其中算法思想就是道,而经典题目以及做题技巧就是术。做题是通过术来完善道。

你不知道的 LeetCode 技巧(第二篇)

2021-09-25
阅读 3 分钟
3.1k
上一篇 你不知道的 LeetCode 技巧(第一篇) 讲述了三个 JS 刷题的小技巧。今天来分享几个 leetcode 通用小技巧,不管你是用什么语言刷题都可以使用。tip1 - 中英文切换力扣中国部分题目描述由于翻译的原因,会变得难以理解,甚至出现翻译错误导致题意发生变化的情况。这个时候推荐大家使用切换语言功能,将其转化为英文...

力扣刷题的正确姿势是什么?

2021-09-16
阅读 5 分钟
6.9k
力扣(LeetCode )官网收录了许多互联网公司的算法题目,一度被称为刷题神器。这里我们就来介绍下如何使用 力扣(LeetCode )网站。

我的《算法通关之路》出版啦!

2021-09-03
阅读 3 分钟
4k
其实很多朋友私底下问我:新书什么时候出版?可以预定么?等等其实我比大家更着急,只不过出版图书真的是一个非常严谨的过程。不比专栏,小册等电子读物可以一边上架一边修改。传统的纸质图书的要求和流程都是严格把控的。因此只能耐心等待和配合出版社。 而现在《算法通关之路》终于要和大家见面了!🌹🌹🌹不少同学都早就...

你不知道的 LeetCode 技巧(第一篇)

2021-08-11
阅读 3 分钟
4.7k
今天来给使用 JS 刷题的朋友分享三个 LeetCode 上你或许不知道的刷题技巧。tip1 - ES6+首先穿插一个小知识:我们提交的 JS 是如何被 LeetCode 执行的?我们在力扣提交的代码是放到力扣后台运行的, 而 JS 代码在力扣后台是在 node 中以 --harmony 方式运行的。大概是这样: {代码...} 其中 index.js 就是你提交的代码。...

从零到谷歌程序员:我的面试刷题心得

2021-07-29
阅读 4 分钟
5.8k
本文作者:易潇她的 Github:[链接]大家好,我是易潇,也是91算法群里大家熟悉的狗头。最近申请和面试基本结束,刚刚过了Google的HC。我的本科读的是商学,所以算是文科转码和0基础转码的一员。在这里想跟大家分享一下我面对面试刷题的心得~注:Google的招人模式比较特别,过了HC可以视为被Google接受并且已经结束了所有...

【91专访】 微软大佬 cabbage 分享算法面试心得

2021-07-27
阅读 2 分钟
3k
最近得知 cabbage 拿到了微软的 offer,并在准备拿其他更大公司的 offer。就迫不及待地联系了他,希望他本人可以接受采访。于是这篇采访稿就和大家见面了。

手把手教你刷搜索

2021-06-02
阅读 15 分钟
2.9k
搜索一般指在有限的状态空间中进行枚举,通过穷尽所有的可能来找到符合条件的解或者解的个数。根据搜索方式的不同,搜索算法可以分为 DFS,BFS,A*算法等。这里只介绍 DFS 和 BFS,以及发生在 DFS 上一种技巧-回溯。

读者:西法,记忆化递归究竟怎么改成动态规划啊?

2021-05-18
阅读 11 分钟
3.8k
title: tags: [算法, 动态规划]date: 2021-05-18categories:[动态规划]我在动态规划专题反复强调了先学习递归,再学习记忆化,最后再学动态规划。其中原因已经讲得很透了,相信大家已经明白了。如果不明白,强烈建议先看看那篇文章。尽管很多看了我文章的小伙伴知道了先去学记忆化递归,但是还是有一些粉丝问我:“记忆化...

动态规划到底有多难?

2021-04-21
阅读 17 分钟
5.2k
它的大概意思先将一件事情分成若干阶段,然后通过阶段之间的转移达到目标。由于转移的方向通常是多个,因此这个时候就需要决策选择具体哪一个转移方向。

为何我刷了很多,遇到新的题还是唯唯诺诺,无法重拳出击?

2021-04-06
阅读 9 分钟
2.1k
为何我刷了很多题,遇到新的题还是唯唯诺诺,无法重拳出击?为何一看就会一些就废?这其中又隐藏着怎样的秘密?究竟是道德的沦丧还是人性的扭曲?欢迎收看本期的 走出科学 特别栏目。
封面图

几乎刷完了力扣所有的二分题,我发现了这些东西。。。(下)

2021-03-23
阅读 17 分钟
3.3k
大家好,我是 lucifer。今天给大家带来的是《二分》专题。先上下本文的提纲,这个是我用 mindmap 画的一个脑图,之后我会继续完善,将其他专题逐步完善起来。

力扣刷题插件近期更新盘点

2021-03-16
阅读 1 分钟
2.4k
手撕算法系列插件增加了手撕算法系列。那么作为第一篇手撕算法上线的就是我们的排序算法。排序算法目前我提供了五种排序算法,它们分别是:归并排序(推荐!其他排序方法都不推荐在竞赛中使用)快速排序插入排序选择排序冒泡排序每一种排序都对数组和链表两种数据结构进行了支持。同时,为了对新手更加优化, 对于归并排...

阿里面试题:如何寻找「两个数组」的中位数?

2021-02-25
阅读 8 分钟
2.2k
题目地址(4. 寻找两个正序数组的中位数)[链接]题目描述 {代码...} 前置知识中位数分治法二分查找公司阿里百度腾讯暴力法思路首先了解一下 Median 的概念,一个数组中 median 就是把数组分成左右等分的中位数。如下图:知道了概念,我们先来看下如何使用暴力法来解决。试了一下,暴力解法也是可以被 Leetcode Accept 的。...

我是如何用「最大公约数」秒杀算法题的

2021-02-24
阅读 4 分钟
3k
关于最大公约数有专门的研究。 而在 LeetCode 中虽然没有直接让你求解最大公约数的题目。但是却有一些间接需要你求解最大公约数的题目。比如:914. 卡牌分组365. 水壶问题1071. 字符串的最大公因子因此如何求解最大公约数就显得重要了。如何求最大公约数?定义法 {代码...} 复杂度分析时间复杂度:最好的情况是执行一次...

什么是二维前缀和?

2021-02-22
阅读 6 分钟
7.9k
前缀和是一种重要的预处理,能大大降低查询的时间复杂度。我们可以简单理解为“数列的前 n 项的和”。这个概念其实很容易理解,即一个数组中,第 n 位存储的是数组前 n 个数字的和。

几乎刷完了力扣所有的堆题,我发现了这些东西。。。(第二弹)

2021-01-26
阅读 30 分钟
3k
一点题外话上次在我的公众号给大家做了一个小调查《投出你想要的题解编程语言吧~》。以下是调查的结果:而关于其他,则大多数是 Go 语言。由于 Java 和 Python 所占比例已经超过了 60%,这次我尝试一下 Java 和 Python 双语言来写,感谢 @CaptainZ 提供的 Java 代码。同时为了不让文章又臭又长,我将 Java 本文所有代码...

不知道蓄水池抽样算法?那就进来看看吧~

2021-01-15
阅读 2 分钟
5.8k
力扣中关于蓄水池抽样问题官方标签是 2 道,根据我的做题情况来看,可能有三四道。比重算是比较低的,大家可以根据自己的实际情况选择性掌握。蓄水池抽样的算法思维很巧妙,代码简单且容易理解,就算不掌握它,作为了解也是很不错的。问题描述给出一个数据流,我们需要在此数据流中随机选取 k 个数。由于这个数据流的长...
封面图

状压 DP 是什么?这篇题解带你入门

2020-12-28
阅读 9 分钟
4.3k
题目地址(464. 我能赢么)[链接]题目描述 {代码...} 前置知识动态规划回溯公司阿里linkedin暴力解(超时)思路题目的函数签名如下: {代码...} 即给你两个整数 maxChoosableInteger 和 desiredTotal,让你返回一个布尔值。两种特殊情况首先考虑两种特殊情况,后面所有的解法这两种特殊情况都适用,因此不再赘述。如果 d...

DP 就是暴力,暴力就是艺术

2020-12-28
阅读 5 分钟
2.2k
看了下数据范围,矩阵大小不超过 $200 \times 200$,因此答案应该就是暴力,这个数据范围差不多 N 的三次方的复杂度都可以通过,其中 N 为矩阵的边长。原因我也在之前的文章来和大家聊聊我是如何刷题的(第三弹)中讲过了,那就是 $200^3$ 刚好是是 800 万,再多就很容易超过 1000 万了。

来和大家聊聊我是如何刷题的(第三弹)

2020-12-21
阅读 9 分钟
2.6k
前两篇的地址在这里,没有看过的同学建议先看下。来和大家聊聊我是如何刷题的(第一弹)来和大家聊聊我是如何刷题的(第二弹)本章或许是这个系列的最终章。这次给大家聊一点硬核的,聊一些几乎所有算法题都能用得上的超实用思想。上一节给大家抛出了两个问题,分别是:如何锁定使用哪种算法?比如我看到了这道题,我怎...

力扣 APP 全新改版,史诗级增强!

2020-12-16
阅读 2 分钟
1.9k
这次的改版真的是判若两人,PC 端的几乎所有功能都可以在新版 APP 中看到,并且体验更好。 不仅之前令我不爽的地方全部不见了,而且多了一些我想都没想到的好用功能。 比如摇一摇功能。

我是如何把简单题目做成困难的?

2020-12-08
阅读 6 分钟
1.9k
大家好,我是 lucifer,众所周知,我是一个小前端 (不是) 。其实,我是 lucifer 的 1379 号迷妹观察员,我是一粒纳米前端。(不要回答,不要回答,不要回答!!!)