自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

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

原创 请看这里!!!leetcode题目目录!!!

leetcode题目目录 面试题1 25人赛跑问题-得出前三名 面试题2 求二叉树每一层最右节点值 面试题3 除留余数法实现哈希表 面试题4 一个优雅的三路快排 面试题5 图的知识点补充(AOE网络的关键路径) 图 其他 刷题过程中,那些总也记不住的语法 语法 其他 图的题目归类...

2019-08-03 13:04:20 4150

原创 Tomcat, RPC, Spring

一、Tomcat(Slimcat)Tomcat支持收发网络请求,如Http,TCP,UDP等形式,是容器。相当于在一个server硬件上面起了一个server软件,帮助我们和Client进行通信。是很底层的东西,与我们的代码不打交道,所以我们只需要知道Tomcat是干嘛的,不需要知道是如何实现的。七层通信协议,Tomcat可以理解为下面的六层,然后在上面build各种应用,每一个应用起一个Tomcat。相当于路由器,帮我们实现上网功能,至于上网干嘛,由我们自己定,上网做的事情,就相当于上面的应用。

2020-06-04 17:19:39 843

原创 JAVA中Lambda函数

1、lambda函数怎么发展来的最开始得写接口+类实现匿名类:如果一个class定义了方法,但没有具体执行代码,这个方法就是抽象方法,抽象方法用abstract修饰。因为无法执行抽象方法,因此这个类也必须申明为抽象类(abstract class)。因为抽象类本身被设计成只能用于被继承,因此,抽象类可以强迫子类实现其定义的抽象方法,否则编译会报错。因此,抽象方法实际上相当于定义...

2020-04-28 11:30:34 2475

原创 shell入门

1. touch新建一个不存在的文件:touch a.text2.echo用于字符串的输出(1) echo "It is a test"这里的双引号完全可以省略,以下命令与上面实例效果一致:echo It is a test(2) 显示结果定向至文件echo "It is a test" > myfile3.cat 打印文件内容...

2020-04-20 16:13:50 387

原创 git入门

Git是目前最流行的版本管理系统,用于文件管理。一、Git 版本模型Remote:远程仓库(github,gitlab) Respository:本地仓库 Workspace:本地工作区 Index(stage): 暂存区我们把文件往Git版本库里添加的时候,是分两步执行的:1、git add把文件添加进去,实际上就是把文件修改添加到暂存区。2、git commit...

2020-04-15 19:31:09 335

原创 Vim入门

查找:/ 不需要冒号 跳到指定行(n为指定的行号):n如何一次性把文件里面的东西全删掉:敲gg跳到第一行,敲dG删除到最后一行 不需要冒号显示行号:set nu 或者 :set number 取消行号::set nonu:w 保存 :q 退出 :q! 强制退出 保存退出命令":wq"和":x"的区别::wq 强制写入并退出(即使文件没有被修改也强制写入,并更新...

2020-04-15 16:05:26 234

原创 设计一个网页爬虫

一、需求沟通1、用例需求说明:1. 百度这个网站,通过一系列的url链接,然后去爬取一系列的网站上的数据,生成标题和摘要信息存下来。2. 用户通过在百度搜索框内输入搜索词之后,可以看到相关的搜索结果列表。这些列表显示的就是之前爬取到的页面标题和摘要。2、算数二、答案1、概要设计2、扩展设计3、关键点总结1. 爬虫的部分是不对用户的,...

2020-02-15 17:14:11 576

原创 设计推特时间轴与搜索功能

一、需求沟通1、用例1. 用户发布了一篇推特服务将推特推送给关注者,给他们发送消息通知与邮件2. 用户浏览用户时间轴(用户最近的活动)3. 用户浏览主页时间轴(用户关注的人最近的活动)4. 用户搜索关键词5. 服务需要有高可用性2、算数二、答案1、概要设计2、扩展设计3、关键点总结1....

2020-02-15 16:02:11 1287

原创 在 AWS 上设计支持百万级到千万级用户的系统

一、需求沟通1、用例1. 用户进行读或写请求服务进行处理,存储用户数据,然后返回结果2. 服务需要从支持小规模用户开始到百万用户在我们演化架构来处理大量的用户和请求时,讨论一般的扩展模式服务高可用2、算数二、答案1、概要设计Web Server用来读、写、存储2、扩展设计,用户+运用纵向扩展: 选择一台更大容量(性能更好)的服务器...

2020-02-15 11:38:18 548

原创 为 Amazon 设计分类售卖排行

一、需求沟通1、用例1、服务根据分类计算过去一周中最受欢迎的商品2、用户通过分类浏览过去一周中最受欢迎的商品3、服务有着高可用性2、算数二、答案1、概要设计2、扩展设计3、关键点总结1、Sales API负责交易的API2、Read API负责浏览的API3、Sales Rank API通过交易数据按分类计算上周最受...

2020-02-15 00:03:20 310

原创 设计 Mint.com

一、需求沟通1、用例2、算数二、答案1、概要设计2、设计扩展3、关键点总结1、Accounts API:负责账户相关的业务2、Queue:(1)数据量大,需要异步处理(2)不需要实时(3)不能丢数据,著名的队列中间件:Kafka,为了确认不丢数据,有个ACK确认机制,写进去之后,必须收到ACK=1,表明数据已经写入了,才...

2020-02-14 18:20:43 490

原创 为一个社交网络设计数据结构

一、需求沟通1、用例1、用户寻找某人并显示与被寻人之间的最短路径2、服务高可用2、算数二、答案1、概要设计2、扩展设计3、关键点总结1、Query API查询API,负责查询相关的业务2、Lookup Service查询一个用户及其好友关系,先找到该用户存在哪一台机器上,再锁定好友关系3、Person Server存储一个用...

2020-02-14 17:08:18 914

原创 系统设计的面试题和解答

1、设计 Pastebin.com (或者 Bit.ly) 2、 3、 4、 5、 6、 7、 8、

2020-02-14 14:14:35 532

原创 设计一个键-值缓存来存储最近 web 服务查询的结果

一、需求沟通1、用例1、用户发送一个搜索请求,命中缓存2、用户发送一个搜索请求,未命中缓存3、服务有着高可用性2、算数二、答案1、概要设计...

2020-02-14 14:13:24 213

原创 设计 Pastebin.com (或者 Bit.ly)

一、需求沟通1、用例1、用户输入一些文本,然后得到一个随机生成的链接过期时间 默认为永不过期 可选设置为一定时间过期 2、用户输入粘贴板中的 url,查看内容3、用户是匿名访问的4、服务需要能够对页面进行跟踪分析月访问量统计5、服务将过期的内容删除6、服务有着高可用性2、算数二、答案1、概要设计2、扩展设计3、关键点总结...

2020-02-14 12:29:09 929

原创 444. 序列重建

验证原始的序列org是否可以从序列集seqs中唯一地重建。序列org是 1 到 n 整数的排列,其中 1 ≤ n ≤ 104。重建是指在序列集seqs中构建最短的公共超序列。(即使得所有 seqs中的序列都是该最短序列的子序列)。确定是否只可以从seqs重建唯一的序列,且该序列就是org。示例 1:输入:org: [1,2,3], seqs: [[1,2],[...

2020-02-01 14:33:16 1258

原创 310. 最小高度树(拓扑排序)

对于一个具有树特征的无向图,我们可选择任何一个节点作为根。图因此可以成为树,在所有可能的树中,具有最小高度的树被称为最小高度树。给出这样的一个图,写出一个函数找到所有的最小高度树并返回他们的根节点。格式该图包含n个节点,标记为0到n - 1。给定数字n和一个无向边edges列表(每一个边都是一对标签)。你可以假设没有重复的边会出现在edges中。由于所有的边都是无...

2020-02-01 11:40:06 344

原创 图的题目归类总结

类别 题目 并查集 261, 323, 684 最短路径 743 最小生成树 1135 拓扑排序 207, 210, 802,310 关键路径法 图的知识点补...

2020-01-31 23:21:07 527

原创 332. 重新安排行程

给定一个机票的字符串二维数组[from, to],子数组中的两个成员分别表示飞机出发和降落的机场地点,对该行程进行重新规划排序。所有这些机票都属于一个从JFK(肯尼迪国际机场)出发的先生,所以该行程必须从 JFK 出发。说明:如果存在多种有效的行程,你可以按字符自然排序返回最小的行程组合。例如,行程 ["JFK", "LGA"] 与 ["JFK", "LGB"] 相比就更小,排序更靠前...

2020-01-31 22:44:48 344

原创 785. 判断二分图

给定一个无向图graph,当这个图为二分图时返回true。如果我们能将一个图的节点集合分割成两个独立的子集A和B,并使图中的每一条边的两个节点一个来自A集合,一个来自B集合,我们就将这个图称为二分图。graph将会以邻接表方式给出,graph[i]表示图中与节点i相连的所有节点。每个节点都是一个在0到graph.length-1之间的整数。这图中没有自环和平行边:graph[i]中不存...

2020-01-31 17:49:14 241

原创 261. 以图判树

给定从0到n-1标号的n个结点,和一个无向边列表(每条边以结点对来表示),请编写一个函数用来判断这些边是否能够形成一个合法有效的树结构。示例 1:输入: n = 5, 边列表 edges = [[0,1], [0,2], [0,3], [1,4]]输出: true示例 2:输入: n = 5, 边列表 edges = [[0,1], [1,2], [2,3], [...

2020-01-31 12:00:22 1908

原创 图的知识点补充(AOE网络的关键路径)

一个无环的有向图称为无环图(Directed Acyclic Graph),简称DAG图。 AOE(Activity On Edge)网:顾名思义,用边表示活动的网,当然它也是DAG。与AOV不同,活动都表示在了边上,如下图所示: 如上所示,共有11项活动(11条边),9个事件(9个顶点)。整个工程只有一个...

2020-01-30 00:25:18 1104

原创 1135. 最低成本联通所有城市(最小生成树)

想象一下你是个城市基建规划者,地图上有N座城市,它们按以1到N的次序编号。给你一些可连接的选项conections,其中每个选项conections[i] = [city1, city2, cost]表示将城市city1和城市city2连接所要的成本。(连接是双向的,也就是说城市city1和城市city2相连也同样意味着城市city2和城市city1相...

2020-01-29 20:19:52 2333

原创 743. 网络延迟时间(最短路径)

有N个网络节点,标记为1到N。给定一个列表times,表示信号经过有向边的传递时间。times[i] = (u, v, w),其中u是源节点,v是目标节点,w是一个信号从源节点传递到目标节点的时间。现在,我们向当前的节点K发送了一个信号。需要多久才能使所有节点都收到信号?如果不能使所有节点收到信号,返回-1。Example 1:Input: ti...

2020-01-27 23:36:13 859

原创 802. 找到最终的安全状态(拓扑排序)

在有向图中, 我们从某个节点和每个转向处开始, 沿着图的有向边走。 如果我们到达的节点是终点 (即它没有连出的有向边), 我们停止。现在, 如果我们最后能走到终点,那么我们的起始节点是最终安全的。 更具体地说, 存在一个自然数K, 无论选择从哪里开始行走, 我们走了不到K步后必能停止在一个终点。哪些节点最终是安全的? 结果返回一个有序的数组。该有向图有N个节点,标签为0,...

2020-01-27 19:15:39 320

原创 210. 课程表 II(拓扑排序)

现在你总共有n门课需要选,记为0到n-1。在选修某些课程之前需要一些先修课程。例如,想要学习课程 0 ,你需要先完成课程1 ,我们用一个匹配来表示他们:[0,1]给定课程总量以及它们的先决条件,返回你为了学完所有课程所安排的学习顺序。可能会有多个正确的顺序,你只要返回一种就可以了。如果不可能完成所有课程,返回一个空数组。示例1:输入: 2, [[1,0]] ...

2020-01-27 14:52:36 234

原创 133. 克隆图

给你无向连通图中一个节点的引用,请你返回该图的深拷贝(克隆)。图中的每个节点都包含它的值val(int) 和其邻居的列表(list[Node])。class Node { public int val; public List<Node> neighbors;}测试用例格式:简单起见,每个节点的值都和它的索引相同。例如,第一个节点值为 ...

2020-01-26 22:54:28 204

原创 207. 课程表(拓扑排序)

现在你总共有n门课需要选,记为0到n-1。在选修某些课程之前需要一些先修课程。例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们:[0,1]给定课程总量以及它们的先决条件,判断是否可能完成所有课程的学习?示例 1:输入: 2, [[1,0]] 输出: true解释:总共有 2 门课程。学习课程 1 之前,你需要完成课程 0。所以这是可能...

2020-01-26 18:17:02 361

原创 399. 除法求值

给出方程式A / B = k, 其中A和B均为代表字符串的变量,k是一个浮点型数字。根据已知方程式求解问题,并返回计算结果。如果结果不存在,则返回-1.0。示例 :给定a / b = 2.0, b / c = 3.0问题:a / c = ?, b / a = ?, a / e = ?, a / a = ?, x / x = ?返回[6.0, 0.5, -1.0, ...

2020-01-26 14:59:08 222

原创 323. 无向图中连通分量的数目(并查集)

给定编号从 0 到 n-1 的 n 个节点和一个无向边列表(每条边都是一对节点),请编写一个函数来计算无向图中连通分量的数目。示例 1:输入: n = 5 和 edges = [[0, 1], [1, 2], [3, 4]] 0 3 | | 1 --- 2 4输出: 2示例 2:输入: n = 5 和 e...

2020-01-26 10:06:30 703

原创 684. 冗余连接(并查集)

在本问题中, 树指的是一个连通且无环的无向图。输入一个图,该图由一个有着N个节点 (节点值不重复1, 2, ..., N) 的树及一条附加的边构成。附加的边的两个顶点包含在1到N中间,这条附加的边不属于树中已存在的边。结果图是一个以边组成的二维数组。每一个边的元素是一对[u, v],满足u < v,表示连接顶点u和v的无向图的边。返回一条可以删去的边,使得结果图是一个有着N...

2020-01-25 18:52:55 310

原创 1306. 跳跃游戏 III

这里有一个非负整数数组arr,你最开始位于该数组的起始下标start处。当你位于下标i处时,你可以跳到i + arr[i]或者i - arr[i]。请你判断自己是否能够跳到对应元素值为 0 的任意下标处。注意,不管是什么情况下,你都无法跳到数组之外。示例 1:输入:arr = [4,2,3,0,3,1,2], start = 5输出:true解释:...

2020-01-25 12:27:11 216

原创 1267. 统计参与通信的服务器

这里有一幅服务器分布图,服务器的位置标识在m * n的整数矩阵网格grid中,1 表示单元格上有服务器,0 表示没有。如果两台服务器位于同一行或者同一列,我们就认为它们之间可以进行通信。请你统计并返回能够与至少一台其他服务器进行通信的服务器的数量。示例 1:输入:grid = [[1,0],[0,1]]输出:0解释:没有一台服务器能与其他服务器进行通信。...

2020-01-25 11:38:05 278

原创 841. 钥匙和房间

有N个房间,开始时你位于0号房间。每个房间有不同的号码:0,1,2,...,N-1,并且房间里可能有一些钥匙能使你进入下一个房间。在形式上,对于每个房间i都有一个钥匙列表rooms[i],每个钥匙rooms[i][j]由[0,1,...,N-1]中的一个整数表示,其中N = rooms.length。 钥匙rooms[i][j] = v可以打开编号为v的房间。...

2020-01-23 15:30:56 288

原创 1043. 分隔数组以得到最大和

给出整数数组A,将该数组分隔为长度最多为 K 的几个(连续)子数组。分隔完成后,每个子数组的中的值都会变为该子数组中的最大值。返回给定数组完成分隔后的最大和。示例:输入:A = [1,15,7,9,2,5,10], K = 3输出:84解释:A 变为 [15,15,15,9,10,10,10]提示:1 <= K <= A.length<=...

2020-01-22 11:48:40 365 1

原创 959. 由斜杠划分区域

在由 1 x 1 方格组成的 N x N 网格grid中,每个 1 x 1方块由/、\或空格构成。这些字符会将方块划分为一些共边的区域。(请注意,反斜杠字符是转义的,因此\用"\\"表示。)。返回区域的数目。示例 1:输入:[ " /", "/ "]输出:2解释:2x2 网格如下:示例 2:输入:[ " /", " ...

2020-01-22 10:28:55 2731

原创 1161. 最大层内元素和

给你一个二叉树的根节点root。设根节点位于二叉树的第1层,而根节点的子节点位于第2层,依此类推。请你找出层内元素之和最大的那几层(可能只有一层)的层号,并返回其中最小的那个。示例:输入:[1,7,0,7,-8,null,null]输出:2解释:第 1 层各元素之和为 1,第 2 层各元素之和为 7 + 0 = 7,第 3 层各元素之和为 7 +...

2020-01-21 22:04:55 314

原创 1042. 不邻接植花

有N个花园,按从1到N标记。在每个花园中,你打算种下四种花之一。paths[i] = [x, y]描述了花园x到花园y的双向路径。另外,没有花园有 3 条以上的路径可以进入或者离开。你需要为每个花园选择一种花,使得通过路径相连的任何两个花园中的花的种类互不相同。以数组形式返回选择的方案作为答案answer,其中answer[i]为在第(i+1)个花园...

2020-01-21 18:09:38 273

原创 997. 找到小镇的法官

在一个小镇里,按从1到N标记了N个人。传言称,这些人中有一个是小镇上的秘密法官。如果小镇的法官真的存在,那么:小镇的法官不相信任何人。 每个人(除了小镇法官外)都信任小镇的法官。 只有一个人同时满足属性 1 和属性 2 。给定数组trust,该数组由信任对trust[i] = [a, b]组成,表示标记为a的人信任标记为b的人。如果小镇存在秘密法官并且可...

2020-01-21 16:48:35 456

原创 刷题过程中,那些总也记不住的语法

这篇文章中的内容,只是采用我比较熟悉的方式进行记录,内容零散,格式混乱,请多包涵。大致分了类:一、与vector相关的1、sort(不光用于vector)(1)Sort函数有三个参数:(第三个参数可不写)第一个是要排序的数组的起始地址。第二个是结束的地址(最后一位要排序的地址)第三个参数是排序的方法,可以是从大到小也可是从小到大,还可以不写第三个参数,此时默认的排...

2020-01-21 11:49:25 491

空空如也

空空如也

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

TA关注的人

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