摘要: 这里是《齐姐聊大厂》系列的第 11 篇 (前 10 篇见文末) 每周五早上 8 点,与你唠唠大厂的那些事 小齐说: 这篇文章来自去年一起刷题跳槽的小当家大佬,大佬手握 N 个 offer,先是被西雅图的悠闲生活所打动,可去了却没想到... 被投行摧残了接近两年,去微软折腾了快一年,最近终于入职 Go 阅读全文
posted @ 2020-10-23 08:19 小齐本齐 阅读(1223) 评论(8) 推荐(0) 编辑
摘要: 链表 链表是数据结构里一个很基础但是又很爱考的线性结构,链表的操作相对来说比较简单,但是非常适合考察面试者写代码的能力,以及对 corner case 的处理,还有指针的应用很容易引起 NPE (null pointer exception)。综合以上原因,链表在面试中很重要。 提到链表就不得不提数 阅读全文
posted @ 2020-10-22 09:51 小齐本齐 阅读(725) 评论(1) 推荐(4) 编辑
摘要: 选择排序 选择排序也是利用了“挡板法”这个经典思想。 挡板左边是已排序区间,右边是未排序区间,那么每次的“选择”是去找右边未排序区间的最小值,找到之后和挡板后面的第一个值换一下,然后再把挡板往右移动一位,保证排好序的这些元素在挡板的左边。 比如之前的例子:{5, 2, 0, 1} 我们用一个挡板来分 阅读全文
posted @ 2020-10-21 08:36 小齐本齐 阅读(457) 评论(1) 推荐(3) 编辑
摘要: 插入排序 借用《算法导论》里的例子,就是我们打牌的时候,每新拿一张牌都会把它按顺序插入,这,其实就是插入排序。 齐姐声明:虽然我们用打牌的例子,但是可不能学胡适先生啊。 对于数组来说怎么做呢? 有一个重要的思想,叫做挡板法,就是用挡板把数组分成两个区间: 挡板左边:已排序挡板右边:未排序 那么排序分 阅读全文
posted @ 2020-10-20 09:45 小齐本齐 阅读(777) 评论(1) 推荐(2) 编辑
摘要: heapify() 前面两篇文章介绍了什么是堆以及堆的两个基本操作,但其实呢,堆还有一个大名鼎鼎的非常重要的操作,就是 heapify() 了,它是一个很神奇的操作, 可以用 O(n) 的时间把一个乱序的数组变成一个 heap。 但是呢,heapify() 并不是一个 public API,看: 所 阅读全文
posted @ 2020-10-19 08:10 小齐本齐 阅读(1260) 评论(0) 推荐(2) 编辑
摘要: 今天在视频号里发了个福利,送谷歌师兄的刷题笔记!看视频领取哈。 之后也会每周在视频号里发福利的,大家点赞关注走起呀~ 这里是《齐姐聊大厂》系列的第 10 篇 (前 9 篇见文末) 每周五早上 8 点,与你唠唠大厂的那些事 Linkedin 属于 FLAG 之一,也是湾区一大热门公司,以福利好著称:薪 阅读全文
posted @ 2020-10-16 09:52 小齐本齐 阅读(446) 评论(2) 推荐(0) 编辑
摘要: 大家好,这里是《齐姐聊数据结构》系列之大集合。 话不多说,直接上图: Java 集合,也称作容器,主要是由两大接口 (Interface) 派生出来的: Collection 和 Map 顾名思义,容器就是用来存放数据的。 那么这两大接口的不同之处在于: Collection 存放单一元素; Map 阅读全文
posted @ 2020-10-15 10:23 小齐本齐 阅读(571) 评论(1) 推荐(1) 编辑
摘要: 上一篇讲 Git 的文章发出来没想到效果特别好,很多读者都要求继续深入的写。 那今天齐姐简单讲下 Git 的实现原理,知其所以然才能知其然;并且梳理了日常最常用的 12 个命令,分为三大类分享给你。 本文的结构如下: 作者和开发原由 Git 的数据模型 常用命令 资源推荐 作者和开发原由 Talk 阅读全文
posted @ 2020-10-14 09:51 小齐本齐 阅读(903) 评论(2) 推荐(1) 编辑
摘要: Java 集合框架其实都讲过了,有一篇讲 Collection 的,有一篇讲 HashMap 的,那没有看过的小伙伴快去补下啦,文末也都有链接;看过的小伙伴,那本文就是检测学习成果的时候啦 今天这篇文章是单纯的从面试的角度出发,以回答面试题为线索,再把整个 Java 集合框架复习一遍,希望能帮助大家 阅读全文
posted @ 2020-10-10 10:36 小齐本齐 阅读(974) 评论(0) 推荐(0) 编辑
摘要: 基本操作 任何一个数据结构,无非就是增删改查四大类: 功能 方法 时间复杂度 增 offer(E e) O(logn) 删 poll() O(logn) 改 无直接的 API 删 + 增 查 peek() O(1) 这里 peek() 的时间复杂度很好理解,因为堆的用途就是能够快速的拿到一组数据里的 阅读全文
posted @ 2020-10-07 09:39 小齐本齐 阅读(413) 评论(0) 推荐(2) 编辑