自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

码农田小齐

微信搜:码农田小齐

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

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

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

2020-10-30 08:23:30 10431 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

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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