自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

码农田小齐

微信搜:码农田小齐

  • 博客(53)
  • 收藏
  • 关注

原创 动态规划解题方法

魔幻的 2020 让我们怀疑人生是否存在最优解?我们某个时间的决策究竟是否正确?历史不能改变,但却会重演,我们究竟要从过去中学到什么呢?让我们一起从动态规划中,来找寻这些问题的答案吧~(咳咳,今天开始回归算法系列,来聊一聊之前的算法文章中没有讲到的内容。什么是动态规划动态规划(Dynamic Programic,简称 DP)是一种求解最优解的方法,它是一种特殊的分治思想,利用它可以实现时间复杂度的优化,有时也可以进行空间复杂度的优化,有时是需要更多的空间的(相比其他方法)。dynamic 是动态的

2021-01-15 08:45:43 14

原创 我是如何提高自己的「编程能力」的?

上周的投票,大家最关心的还是提高技术,那我们今天就来聊聊这个话题。之前主要分享的多是算法和数据结构方面(年后继续),因为我认为算法和数据结构是程序员最最最重要的内功,但是并不是唯一。我自己作为一个非科班的程序员,并且在工作中观察了“这两类”工程师的表现,我认为科班和非科班最大的区别在于:科班的同学知道去学什么,问题出现了他知道自己是哪里有知识漏洞;而非科班的,可能压根不知道自己不知道什么。(解决方式:建立系统的知识体系、寻求老板、tech lead 的指点,快速补充基础并反复学习。)因此这篇文章我

2020-12-23 08:07:29 166

原创 小齐读者拿到快手、百度、网易等 offer 的独门秘籍!

小齐说:这篇文章来自读者冰红茶,他刚结束了秋招,拿了很多家 offer。和他聊完之后,我觉得他的备考思路也完全适用于美国的面试,只是分值要调整一下,但是具体每一块的内容,地球村通用。所以分享给大家一起学习一下~长达一年的实习、秋招之路终于落下了尾声,我最终收获了快手、百度、网易等互联网大厂的开发岗offer。大学我学的专业是通信工程,也算是半个非科班出身,一路走就像是打怪升级的过程,不断地纠错尝试,一点经验分享给准备参加秋招的你。大学时候每次期末考试我们都会等老师划重点,目的就是想确认考试的范围

2020-12-09 08:18:21 152 2

原创 来看看黑五小齐都买了什么好东西?

12 月早安~转眼进入 2020 的最后一个月,自习室里大家纷纷立下了最后一个 flag,也随之进入买买买季。齐姐自习室这不,趁着上周的感恩节和黑五,买了一大堆好东西,想分享给你们(其实是没时间写技术文了)~嗯,看到最后一个你们可千万别打我!(小齐声明:本文不含任何商业推广)民以食为天,我们先说吃的~Myprotein作为程序员,我们平时要消耗大量脑力,所以加餐吃点这种蛋白小零食是最合适不过的了~我一般是不吃补剂的,但会买点蛋白类的产品,因为我喜欢吃零食特别是甜食。。蛋白棒之类的产品,就

2020-12-03 10:38:49 88 1

原创 10 张图聊聊线程的生命周期和常用 APIs

上一篇文章我们聊了多线程的基础内容,比如为什么要使用多线程,线程和进程之间的不同,以及创建线程的 4 种方式。本文已收录至我的 Github: https://github.com/xiaoqi6666/NYCSDE今天我们来说一下线程的生命周期和常用 APIs:我们需要非常清楚的知道线程的各种状态,比如排查程序运行慢的原因时,就需要看下是不是哪里被阻塞了;另外它也是面试时非常喜欢问的,如果基础内容都答不好,恐怕直接就挂了。本文分为两大部分,线程的 6 大状态;多线程常用的 APIs:join(

2020-11-23 07:41:52 49

原创 不想做科技第一的金融公司,不是好的养老去处

这里是《齐姐聊大厂》系列的第 15 篇每周五早上 8 点,与你唠唠大厂的那些事小齐说:大家周五好~今天是《齐姐聊大厂》系列的最后一篇了。可能大家并不清楚这一篇文章的制作成本和来源,今天先和大家叨叨两句。大家有没有想过这些文章是怎么来的?我本身不是 CS 科班出身,身边的朋友在互联网公司的很少,而这半年来疫情宅家也没有社交活动,接触的人也很少。为了这个系列,我更多的是要去联系一些陌生人,比如去 Linkedin 上加人,然后问人家是否愿意参与,答应之后我还需要和他聊天,引导的问些问题,最后再整理

2020-11-20 09:44:11 2081 3

原创 新手一看就懂的线程池!

经过前几篇文章的学习,大家对多线程应该有些了解了吧,这里附上前三篇文章的链接,还没有看过的小伙伴快去复习吧~~多线程基础篇入门线程的生命周期和常用 APIs生产者消费者问题那相信大家也能感受到,其实用多线程是很麻烦的,包括线程的创建、销毁和调度等等,而且我们平时工作时好像也并没有这样来 new 一个线程,其实是因为很多框架的底层都用到了线程池。线程池是帮助我们管理线程的工具,它维护了多个线程,可以降低资源的消耗,提高系统的性能。并且通过使用线程池,我们开发人员可以更好的把精力放在任务代码上,而不

2020-11-19 10:21:34 94

原创 一文带你玩转设计模式之「责任链」

微信搜索????「码农田小齐」,关注这个在纽约的程序媛,回复「01-05」可以获取计算机精选书籍、个人刷题笔记、大厂面经、面试资料等资源,么么哒~前言对于已经工作了的小伙伴,你应该是见过"责任链"这种面向对象的设计模式的,还在上学的小伙伴也不用着急,你迟早会接触到的。本文旨在让小白同学和不太熟悉责任链的朋友能够迅速对这一设计模式有一个大致的了解。在我们的工农业生产中,经常有这样的场景:一个任务、事务、流程等都需要很多不同的步骤,来完成不同的计算或者收集不同的数据。为了维护一个比较复杂,有时甚至是对

2020-11-17 09:13:57 128 7

原创 看了齐姐这篇文章,再也不怕面试问树了

微信搜索????「码农田小齐」,关注这个在纽约的程序媛,回复「01-05」可以获取计算机精选书籍、个人刷题笔记、大厂面经、面试资料等资源,么么哒~在写完了所有线性数据结构之后,今天开启非线性数据结构系列。我们今天先来看,什么是“树”。树是由顶点和边组成的且不存在环的数据结构。作为一个应用非常广的数据结构,不仅在工作中常用,在面试中也非常常考。一是因为树的结构天然决定了它和递归联系紧密,很多树相关的算法题都非常适合用递归来解;二是因为它的难度介于链表和图之间,非常适合在 45 分钟的面试里进行考察

2020-11-16 08:42:46 153 5

原创 Facebook 的神仙组长什么样?

这里是《齐姐聊大厂》系列的第 14 篇每周五早上 8 点,与你唠唠大厂的那些事号外号外!前 12 篇已出 PDF:公粽号后台回复「大厂」即可获得!❝小齐说:这篇文章是来自阿米粥的分享,他今年暑假在 Facebook 实习,跟大家完整的分享从申请面试到实习结束的整个过程,让我们一起来感受下吧~❞时间线我是 2019 年 9 月底找朋友内推的 facebook software engineer summer internship 岗位,fb 的 hr 工作效率很高,3 个工作日之内就有了邮件

2020-11-13 08:04:12 103 1

原创 哈希冲突详解

微信搜索????「码农田小齐」,关注这个在纽约的程序媛,回复「01-05」可以获取计算机精选书籍、个人刷题笔记、大厂面经、面试资料等资源,么么哒~哈希冲突详解一般来说哈希冲突有两大类解决方式[1]Separate chainingOpen addressingJava 中采用的是第一种 Separate chaining,即在发生碰撞的那个桶后面再加一条“链”来存储,那么这个“链”使用的具体是什么数据结构,不同的版本稍有不同:在 JDK1.6 和 1.7 中,是用链表存储的,这样如果碰撞

2020-11-12 10:46:05 502 4

原创 为什么重写 equals() 方法,一定要重写 hashCode() 呢?| HashMap

微信搜索????「码农田小齐」,关注这个在纽约的程序媛,回复「01-05」可以获取计算机精选书籍、个人刷题笔记、大厂面经、面试资料等资源,么么哒~首先我们有一个假设:任何两个 object 的 hashCode 都是不同的。那么在这个条件下,有两个 object 是相等的,那如果不重写 hashCode(),算出来的哈希值都不一样,就会去到不同的 buckets 了,就迷失在茫茫人海中了,再也无法相认,就和 equals() 条件矛盾了,证毕。撒花~~????????????接下来我们再对这两个方

2020-11-11 08:36:02 142

原创 刷题到底有什么用?你这么刷题还真没用

关于刷题,上一篇文章讲了 How,今天我们来聊聊 Why —— 为什么要刷题?或许很多人没考虑过这个问题,或者会说因为面试要考啊,没错,就是这个原因,就这一个理由足以让我们去刷题。但今天我们来聊点不一样的,希望给你新的启发。算法之前,面试考什么?我曾在这篇文章《从 LRU Cache 带你看面试的本质》中提到过部分,美国大厂面试 80% 都是在考算法,这其实是最近 5-10 年以谷歌、雅虎为首才兴起的;国内大厂对于算法的考察虽然没有这么狂热,但也越来越重视了。那为什么会形成这种局面?在考算法之前它们

2020-11-10 08:59:26 174 1

原创 彩虹排序 | 荷兰旗问题

微信搜索????「码农田小齐」,关注这个在纽约的程序媛,回复「01-05」可以获取计算机精选书籍、个人刷题笔记、大厂面经、面试资料等资源,么么哒~荷兰旗问题又称三色排序,或者彩虹排序,因为荷兰旗就三种颜色嘛,那这道题的问题就是给你三种颜色,按照给定的顺序排好。当然了,题目的问法各种各样,有的给数字,有的给字母,但本质都是一样的。比如给你一个只含有三个数字的数组:312312312231111122113,要求按照 1 2 3 的顺序排好,即:111111111222222222223333

2020-11-09 08:26:04 89

原创 百万年薪,国内工作6年的前辈想和你分享这四点

这里是《齐姐聊大厂》系列的第 13 篇每周五早上 8 点,与你唠唠大厂的那些事号外号外!前 12 篇已出 PDF:公众号后台回复「大厂」即可获得!大厂小齐说:上一篇文章有小伙伴留言说要看国内的公司,今天邀请到一位在国内一线互联网大厂工作了 6 年的前辈,聊聊几点大家都关心的话题。如果你喜欢这个系列,欢迎你转发分享,这对我很有帮助,谢谢大家~先说下个人背景:国内 985 硕,在国内一线互联网公司工作近 6 年了。其中待得最久的算是目前国内企业中发展最快的公司之一。目前基本工资税后 100 万

2020-11-06 08:59:55 569 2

原创 快速排序为什么这么快?

快速排序首先选一个基准 pivot,然后过一遍数组,把小于 pivot 的都挪到 pivot 的左边,把大于 pivot 的都挪到 pivot 的右边。这样一来,这个 pivot 的位置就确定了,也就是排好了 1 个元素。然后对 pivot 左边 ???? 的数排序,对 pivot 右边 ???? 的数排序,就完成了。那怎么排左边和右边?答:同样的方法。所以快排也是用的分治法的思想。「分」选择一个 pivot,就把问题分成了pivot 左边pivot 右边这两个问题。「治」

2020-11-05 09:26:32 95

原创 从小白到 6 个 offer,我究竟是怎么刷题的?

最近自习室里又兴起了一阵刷题潮,大家相约刷题~今天和大家系统分享下我去年转行时的一个刷题过程和方法,希望对你有所帮助。首先介绍下我的编程基础,我学的是金融工程专业,硕士时学过 C++ 的课,这也是我的编程入门课(但我个人非常不推荐用 C++ 入门)。这门课的重点是 C++ 在金融领域的应用,比如给 Option 定价,基本不涉及算法和数据结构。所以我是有一定编程基础的,但是对算法和数据结构是小白,也不懂空间复杂度和时间复杂度为何物。另外说明一下我的时间,我是在工作后才开始刷题,所以是晚上和周末来

2020-11-04 09:26:45 8094 20

原创 在美国东海岸小公司工作 3 年的感受

这里是《齐姐聊大厂》系列的第 12 篇(前 11 篇见文末)每周五早上 8 点,与你唠唠大厂的那些事小齐说:自从《齐姐聊大厂》系列开放以来,收到了很多小伙伴的支持和好评,同时也有很多人问我,能不能聊聊“小厂”的工作经历?小公司 vs 大公司,也是很多人纠结的点,所以今天这篇文章,给大家带来博士大佬——小七在美国东海岸的一家小公司工作了 3 年的感受和体验,希望对你有所帮助。如果你喜欢这个系列,欢迎你转发分享,这对我很有帮助,谢谢大家~在读博期间,由于导师的经费不足,所以在学校本地找到了一家

2020-10-30 08:23:30 10432 11

原创 史上最清晰的「归并排序」讲解

那我们借用 cs50 里的例子,比如要把一摞卷子排好序,那用并归排序的思想是怎么做的呢?首先把一摞卷子分成两摞;把每一摞排好序;把排好序的两摞再合并起来。感觉啥都没说?那是因为上面的过程里省略了很多细节,我们一个个来看。首先分成两摞的过程,均分,奇偶数无所谓,也就是多一个少一个的问题;那每一摞是怎么排好序的?答案是用同样的方法排好序。排好序的两摞是怎么合并起来的?这里需要借助两个指针和额外的空间,然后左边画一个彩虹????右边画个龙????,不是,是左边拿一个数,右边拿一个数,两个

2020-10-29 09:24:07 128

原创 究竟什么样的简历才能拿到面试?

很久很久之前出了一期做英文简历的视频,就有同学催着要中文简历的版本。这几个月,我咨询了很多国内的朋友、猎头、HR,也看过了大量的中文简历,总结出今天这篇文章分享给大家。虽然秋招已经过去,但是改简历毕竟是我们一辈子的事,暂时用不着的可以直接拉到文末点赞收藏~简历的作用我认为主要有两点:一是拿到面试;二是在面试时有谈资,方便面试官提问。所以简历非常非常重要,怎么改简历都不为过,毕竟磨刀不误砍柴工。标准的简历样式很简单,四段论,国内外公司都适用:教育背景技能实习经历项目经历当然了,这些是形式

2020-10-27 08:46:22 129

原创 入职微软三个月把老板炒了,七个月自己跑路是一种怎样的体验?

这里是《齐姐聊大厂》系列的第 11 篇(前 10 篇见文末)每周五早上 8 点,与你唠唠大厂的那些事小齐说:这篇文章来自去年一起刷题跳槽的小当家大佬,大佬手握 N 个 offer,先是被西雅图的悠闲生活所打动,可去了却没想到...被投行摧残了接近两年,去微软折腾了快一年,最近终于入职 Google 了。中间走了太多弯路,今天和大家分享下转行总结,希望可以帮助同在迷茫中的人。转码之路本科是主修商科(Business Administration),自学了点数学,又辅修了数学精算。后来决定转

2020-10-23 08:19:26 7257 21

原创 有关链表的小技巧,我都给你总结好了

链表链表是数据结构里一个很基础但是又很爱考的线性结构,链表的操作相对来说比较简单,但是非常适合考察面试者写代码的能力,以及对 corner case 的处理,还有指针的应用很容易引起 NPE (null pointer exception)。综合以上原因,链表在面试中很重要。提到链表就不得不提数组,它和数组可以说是数据结构的基础,那么它们最主要的区别在于:数组在物理内存上必须是连续的链表在物理内存上不需要连续,通过指针连接所以数组最好的性质就是可以随机访问 random access,有了 ind

2020-10-22 09:51:36 107

原创 排序算法入门之「选择排序」

选择排序选择排序也是利用了“挡板法”这个经典思想。挡板左边是已排序区间,右边是未排序区间,那么每次的“选择”是去找右边未排序区间的最小值,找到之后和挡板后面的第一个值换一下,然后再把挡板往右移动一位,保证排好序的这些元素在挡板的左边。比如之前的例子:{5, 2, 0, 1}我们用一个挡板来分隔数组是否排好序,用指针 j 来寻找未排序区间的最小值;第一轮 j 最初指向 5,然后遍历整个未排序区间,最终指向 0,那么 0 就和挡板后的第一个元素换一下,也就是和 5 交换一下位置,挡板向右移动一..

2020-10-21 08:36:07 70 1

原创 排序算法入门之「插入排序」

插入排序借用《算法导论》里的例子,就是我们打牌的时候,每新拿一张牌都会把它按顺序插入,这,其实就是插入排序。齐姐声明:虽然我们用打牌的例子,但是可不能学胡适先生啊。对于数组来说怎么做呢?有一个重要的思想,叫做挡板法,就是用挡板把数组分成两个区间:挡板左边:已排序挡板右边:未排序那么排序分三步走:最初挡板是在数组的最左边,index = 0 的位置,也就是保证了已排序区间里一个数都没有,或者也可以包含一个数啦;核心思想就是:依次遍历未排序区间里的元素,在已排序区间里找到正确的...

2020-10-20 09:44:39 92

原创 不可不会的「反转链表」问题

反转链表这题真的是面试非常喜欢考的了,这题看起来简单,但是能用两种方法一遍 bug free 也是不容易的,面试的时候可以筛下来一大批人,无论是对 junior 还是 senior 面试都很爱考。今天齐姐就带你梳理清楚思路,思路清楚了才能写码如有神。题目这是从力扣中文站上截下来的,但是这个输出不太形象。对链表的反转,并不是要把它实际翻个个,只是动一动 next 指针就好了。什么意思呢?我们先看对数组进行反转。数组是一个物理上连续存储的数据结构,反转之后原来放 1 的位置就变成了放 5..

2020-10-19 08:28:08 80

原创 为什么堆化 heapify() 只用 O(n) 就做到了?

heapify()前面两篇文章介绍了什么是堆以及堆的两个基本操作,但其实呢,堆还有一个大名鼎鼎的非常重要的操作,就是 heapify() 了,它是一个很神奇的操作,可以用 O(n) 的时间把一个乱序的数组变成一个 heap。但是呢,heapify() 并不是一个 public API,看:所以我们没有办法直接使用。唯一使用 heapify() 的方式呢,就是使用PriorityQueue(Collection<? extends E> c)这个 constructor 的时候,人

2020-10-19 08:10:20 100

原创 钱多活少饭好吃的公司,你愿意来吗?

今天在视频号里发了个福利,送谷歌师兄的刷题笔记!看视频领取哈。之后也会每周在视频号里发福利的,大家点赞关注走起呀~这里是《齐姐聊大厂》系列的第 10 篇(前 9 篇见文末)每周五早上 8 点,与你唠唠大厂的那些事Linkedin 属于 FLAG 之一,也是湾区一大热门公司,以福利好著称:薪水排在前列,work life balance 好,食堂好吃,但同时节奏慢、politics 经常被诟病。其他的呢,来看看在 Linkedin 家实习的小伙伴的分享吧~Pros先说好的方面,食堂确实是

2020-10-16 09:51:54 101

原创 Java 集合看这一篇就够了

大家好,这里是《齐姐聊数据结构》系列之大集合。话不多说,直接上图:Java 集合,也称作容器,主要是由两大接口 (Interface) 派生出来的:Collection 和 Map顾名思义,容器就是用来存放数据的。那么这两大接口的不同之处在于:Collection 存放单一元素;Map 存放 key-value 键值对。就是单身狗放 Collection 里面,couple 就放 Map 里。(所以你属于哪里?学习这些集合框架,我认为有 4 个目标:明确每个接口和类的对应关系;对

2020-10-15 10:21:21 138

原创 Git 看这一篇就够了

上一篇讲 Git 的文章发出来没想到效果特别好,很多读者都要求继续深入的写。那今天齐姐简单讲下 Git 的实现原理,知其所以然才能知其然;并且梳理了日常最常用的 12 个命令,分为三大类分享给你。本文的结构如下:作者和开发原由Git 的数据模型常用命令资源推荐作者和开发原由Talk is cheap. Show me the code.这句话就出自 Linux 和 Git 的作者Linus Torvalds。原本 Linux 内核的版本控制系统是用的 BitKeeper,

2020-10-14 09:55:36 361

原创 入职大厂,齐姐精选的 9 道 Java 集合面试题

Java 集合框架其实都讲过了,有一篇讲 Collection 的,有一篇讲 HashMap 的,那没有看过的小伙伴快去补下啦,文末也都有链接;看过的小伙伴,那本文就是检测学习成果的时候啦今天这篇文章是单纯的从面试的角度出发,以回答面试题为线索,再把整个 Java 集合框架复习一遍,希望能帮助大家拿下面试。先上图:当面试官问问题时,我会先把问题归类,锁定这个知识点在我的知识体系中的位置,然后延展开来想这一块有哪些重点内容,面试官问这个是想考察什么、接下来还想问什么。这样自己的思路不会混乱,还能预测

2020-10-10 10:36:09 739

原创 一分钟了解堆的基本操作

基本操作任何一个数据结构,无非就是增删改查四大类:功能方法时间复杂度增offer(E e)O(logn)删poll()O(logn)改无直接的 API删 + 增查peek()O(1)这里 peek() 的时间复杂度很好理解,因为堆的用途就是能够快速的拿到一组数据里的最大/最小值,所以这一步的时间复杂度一定是 O(1) 的,这就是堆的意义所在。那么我们具体来看 offer(E e) 和 poll() 的过程。offer(E e)比如我们新

2020-10-07 09:39:24 1104

原创 一分钟带你读懂什么是堆?

上一篇的 「Java 集合框架」里,还剩下一个大问题没有说的,那就是 PriorityQueue,优先队列,也就是堆,Heap。什么是堆?堆其实就是一种特殊的队列——优先队列。普通的队列游戏规则很简单:就是先进先出;但这种优先队列搞特殊,不是按照进队列的时间顺序,而是按照每个元素的优先级来比拼,优先级高的在堆顶。这也很容易理解吧,比如各种软件都有会员制度,某软件用了会员就能加速下载的,不同等级的会员速度还不一样,那就是优先级不同呀。还有其实每个人回复微信消息也是默默的把消息放进堆里排个序:先回男朋

2020-10-06 08:27:12 1281

原创 在家工作了半年,齐姐这些有意思的事想和你们分享

在家工作已经 7 个月了,下周就进入今年的最后一个季度,大家的 new year resolution 还好吗?我反正是一堆没完成且完不成的,比如学车这种,现在这病毒满天飞也没法学。唉说起开车还是我一大痛处。因为我上学早,高考后我还不到 18 岁,所以没法考驾照,以至于浪费了最好的一段时间。后来大四了被我妈唠叨着终于在过完年返校之前拿下了驾照,但我一直没开过车。。所以几年过去我现在还是不会开车(羞愧)。在我看来会开车应该算一项生存技能,就和会做饭一样,不会没关系,但是会了会方便很多,特别是能带着爸妈去

2020-09-30 10:52:11 1440

原创 靠这些秋招秘笈,齐姐的学妹今年已经拿到了 8 个offer!

小齐说:现在秋招进行时,正在找工作的小伙伴进度都怎么样了呀?今天这篇文章是我武大的学妹今年秋招的经验分享,庆妹去年才决定转行,现在已手握 N+ 个 offer ~这篇文章干货满满,庆妹对每一块面试考察点都给出非常具体、详细的资料和书籍推荐,我看了都很有启发,希望对你也能有所帮助呀。2020 年秋招过了一半了,我目前收到了百度,快手,Shopee,作业帮,TpLlink 的意向书,腾讯,华为和微博面试也已经通过,等待录用。岗位都与后台开发、C++开发有关。我本身并不是计算机专业,比不上收割 SSP

2020-09-29 08:39:13 1314

原创 在市值破万亿美元的公司工作,是一种怎样的体验?

这里是《齐姐聊大厂》系列的第 7 篇(前 6 篇见文末)每周五早上 8 点,与你唠唠大厂的那些事。小齐说:8 月 19 日,苹果公司股价飙升至 468 美元,总市值首次超过 2 万亿美元。虽然疫情影响了苹果的线下零售,但是第三季度营业额高达 596.9 亿美元,远高于市场对它的预期。第一代苹果发布会,我看过不下于五遍。一方面是惊叹于当之无愧的革命性产品,改变了世界的产品,也改变了几十亿人的生活方式;另一方面是被乔帮主的魅力所折服,毕竟我是听过十遍乔帮主在斯坦福大学演讲的人。这里我们只谈产品和技

2020-09-25 08:30:11 1546

原创 从 LRU Cache 带你看面试的本质

前言 大家好,这里是《齐姐聊算法》系列之 LRU 问题。在讲这道题之前,我想先聊聊「技术面试究竟是在考什么」这个问题。技术面试究竟在考什么在人人都知道刷题的今天,面试官也都知道大家会刷题准备面试,代码大家都会写,那面试为什么还在考这些题?那为什么有些人代码写出来了还挂了?大家知道美国的大厂面试 80%是在考算法,这其实是最近 5-10 年以谷歌、雅虎为首才兴起的;国内大厂对于算法的考察虽然没有这么狂热,但也越来越重视了。那么算法面试真的只是在考算法吗?显然不是。本质上考的是思考问题的方式,分析、

2020-09-24 07:56:52 7393 1

原创 一文学懂递归和动态规划

前言大家好,这里是《齐姐聊算法》系列之递归和 DP 问题。递归,是一个非常重要的概念,也是面试中非常喜欢考的。因为它不但能考察一个程序员的算法功底,还能很好的考察对时间空间复杂度的理解和分析。本文只讲一题,也是几乎所有算法书讲递归的第一题,但力争讲出花来,在这里分享四点不一样的角度,让你有不同的收获。时空复杂度的详细分析 识别并简化递归过程中的重复运算披上羊皮的狼 适当炫技助我拿到第一份工作算法思路大家都知道,一个方法自己调用自己就是递归,没错,但这只是理解递归的最表层的理解。

2020-09-21 08:37:38 1906 4

原创 一代巨星的陨落!

这里是《齐姐聊大厂》系列的第 6 篇(前 5 篇见文末)每周五早上 8 点,与你唠唠大厂的那些事。小齐说:2016 年 7 月 25 日,Verizon 最终敲定以 48 亿美金收购雅虎的核心资产,与之前收购的 AOL 合并,成立名为 Oath 的公司,后更名为 Verizon Media。雅虎的剩余业务更名为 Altaba Inc,CEO - Marissa Mayer 在收购完成之后退出董事会。作为昔日互联网的巨头,创立于 1994 年的雅虎两年后便在华尔街上市。在那个年代,雅虎的搜索业务无

2020-09-18 08:23:02 691

原创 拓扑排序就这么回事

前言大家好,这里是《齐姐聊算法》系列之拓扑排序问题。Topological sort 又称 Topological order,这个名字有点迷惑性,因为拓扑排序并不是一个纯粹的排序算法,它只是针对某一类图,找到一个可以执行的线性顺序。这个算法听起来高大上,如今的面试也很爱考,比如当时我在面我司时有整整一轮是基于拓扑排序的设计。但它其实是一个很好理解的算法,跟着我的思路,让你再也不会忘记她。有向无环图刚刚我们提到,拓扑排序只是针对特定的一类图,那么是针对哪类图的呢?答:Directed acyc

2020-09-17 07:52:15 589

原创 必考算法之 Top K 问题

大家好,这里是《齐姐聊算法》系列之 Top K 问题。Top K 问题是面试中非常常考的算法题。8Leetcode 上这两题大同小异,这里以第一题为例。题意:给一组词,统计出现频率最高的 k 个。比如说 “I love leetcode, I love coding” 中频率最高的 2 个就是 I 和 love 了。有同学觉得这题特别简单,但其实这题只是母题,它可以升级到系统设计层面来问:在某电商网站上,过去的一小时内卖出的最多的 k 种货物。我们先看算法层面:思路:统计下所

2020-09-16 07:45:00 647

空空如也

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除