自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(80)
  • 资源 (1)
  • 收藏
  • 关注

原创 315. 计算右侧小于当前元素的个数

给你一个整数数组 nums ,按要求返回一个新数组 counts 。数组 counts 有该性质: counts[i] 的值是 nums[i] 右侧小于 nums[i] 的元素的数量。

2021-09-21 10:20:01 1

原创 1305. 两棵二叉搜索树中的所有元素

算法记录LeetCode 题目:   给你 root1 和 root2 这两棵二叉搜索树。请你返回一个列表,其中包含 两棵树 中的所有整数并按 升序 排序。.思路算法记录说明一、题目二、分析总结说明一、题目   输入:root1 = [2,1,4], root2 = [1,0,3]  输出:[0,1,1,2,3,4]二、分析二插搜索树的特点就是按照中序遍历的序列是一个升序数组。也就是只要中序遍历之后合并两条序列即可,用归并合并的方式进行合并。/** * Definit

2021-09-20 21:01:15 5

原创 剑指 Offer II 077. 链表排序

归并算法作为链表排序的使用算法。

2021-09-20 20:24:12 4

原创 1669. 合并两个链表

算法记录LeetCode 题目:   给你两个链表 list1 和 list2 ,它们包含的元素分别为 n 个和 m 个。请你将 list1 中下标从 a 到 b 的全部节点都删除,并将list2 接在被删除节点的位置。思路算法记录说明一、题目二、分析总结说明一、题目   输入:list1 = [0,1,2,3,4,5], a = 3, b = 4, list2 = [1000000,1000001,1000002]  输出:[0,1,2,1000000,1000001,100000

2021-09-20 19:52:30 3

原创 剑指 Offer II 078. 合并排序链表

算法记录LeetCode 题目:   给定一个链表数组,每个链表都已经按升序排列。思路算法记录说明一、题目二、分析总结说明一、题目   请将所有链表合并到一个升序链表中,返回合并后的链表。二、分析和合并两个有序链表类似,只是多了几条链路而已,每次需要取得链表数组的最小的头结点来放入最终的返回链表中。也就是需要维护一个优先队列,使用堆来完成数据的筛选,每次取出最小的结点之后将此链表的下一个节点进行入队,直到队里为空。/** * Definition for singly-

2021-09-20 19:30:58 4

原创 java---消息队列 RabbitMQ

在高并发的系统中,大量用户的请求涌进数据库会造成数据库的宕机,消息队列可以将大量的消息进行限流,同时也可实现一个延时响应来保证服务器能够保持在最高效的状态进行响应。

2021-09-20 18:39:33 17

原创 剑指 Offer 51. 数组中的逆序对

利用归并排序退层时的序列部分有序的特点来完成逆序对的帅选。

2021-09-20 10:38:01 7

原创 java学习---Nginx 反向服务代理

在网关路由匹配的情况下,要想保证网关的高可用性,也就是需要对网关集群部署,但是网关接入是属于外部情况,一般的服务中心无法进行管理 ,也就需要外部的一个容器来对其均衡系列的操作。而 Nginx 作为反向代理的一个产品,在这个方面有着很好的优势,下面就来进入对 Nginx 的简单学习,学会对应的安装,网站的部署反射等等功能......

2021-09-20 08:21:08 103 4

原创 剑指 Offer 59 - I. 滑动窗口的最大值

算法记录LeetCode 题目:   给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。思路算法记录说明一、题目二、分析总结说明一、题目   也就是一个矩形框在移动,然后每次输出框中的最大值,知道抵达数组的尾部。二、分析最笨的方法可以直接保留当前框中的最大值的坐标,每次框移动时判断当前的最大值会不会移动出界。如果会出界就再次查找矩形中的最大值,否则就比较即将纳入矩形的数据会不会比最大值大,是的话就改变最大值的坐标,否则不变动。我们这里采用队列维护最

2021-09-15 23:06:41 8

原创 11. 盛最多水的容器

算法记录LeetCode 题目:   给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。思路算法记录说明一、题目二、分析总结说明一、题目   也就是计算由此数组可填充的最大矩形的面积。二、分析和短板类似,决定面积的是最短的那个矩形柱,可以从两边开始计算,逐渐向中间进行逼近,每次优先逼

2021-09-13 23:09:32 7

原创 394. 字符串解码

算法记录LeetCode 题目:   给定一个经过编码的字符串,返回它解码后的字符串。思路算法记录说明一、题目二、分析总结说明一、题目   编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。二、分析如果只是一层结构的,也就是直接从头开始遍历然后遇见 】 就将保留的字母进行叠加即可。但是存在嵌套结构的解码,也就可以考虑使用递归的方式来完成。总共有三种特殊情况可以分支:一是遇见了数字,

2021-09-13 22:43:25 3

原创 75. 颜色分类

算法记录LeetCode 题目:   给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。思路算法记录说明一、题目二、分析总结说明一、题目   此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。二、分析也就是排序只有三种数字的数组,在 n 时间内完成可采用基值交换的方法,每次能将一种数字有序化。class Solution { public void sort(int[]

2021-09-09 22:35:22 11

原创 912. 排序数组

算法记录LeetCode 题目:   给你一个整数数组 nums,请你将该数组升序排列。思路算法记录说明一、题目二、分析总结说明一、题目   输入:nums = [5,2,3,1]  输出:[1,2,3,5]二、分析数组的排序方法有很多,我们这里采用单边递归树进行空间优化、基值优化的快速排序作为排序的方式。class Solution { public void quickSort(int[] nums, int start, int end) {

2021-09-09 22:12:58 5

原创 621. 任务调度器

算法记录LeetCode 题目:   给你一个用字符数组 tasks 表示的 CPU 需要执行的任务列表。其中每个字母表示一种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。在任何一个单位时间,CPU 可以完成一个任务,或者处于待命状态。思路算法记录说明一、题目二、分析总结说明一、题目   然而,两个 相同种类 的任务之间必须有长度为整数 n 的冷却时间,因此至少有连续 n 个单位时间内 CPU 在执行不同的任务,或者在待命状态。  你需要计算完

2021-09-08 07:48:12 15 2

原创 面试题 17.09. 第 k 个数

算法记录LeetCode 题目:   有些数的素因子只有 3,5,7,请设计一个算法找出第 k 个数。思路算法记录说明一、题目二、分析总结说明一、题目   注意,不是必须有这些素因子,而是必须不包含其他的素因子。例如,前几个数按顺序应该是 1,3,5,7,9,15,21。输入: k = 5输出: 9二、分析每次将前一个数据拿出来分别对 3、 5、 7 相乘之后将最小的值放入容器中。但是需要注意一个问题,就是出现重复数据。这时候就需要记录已经参与过运算的数据,也就是能

2021-09-07 22:59:08 16

原创 860. 柠檬水找零

算法记录LeetCode 题目:   在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。思路算法记录说明一、题目二、分析总结说明一、题目   每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。  注意,一开始你手头没有任何零钱。  给你一个整数数组 bills ,其中 bills[i] 是第 i 位顾客付的账。如果你能给每位顾

2021-09-07 12:42:34 26 2

原创 641. 设计循环双端队列

算法记录LeetCode 题目:   设计实现双端队列。思路算法记录说明一、题目二、分析总结说明一、题目   实现相关的方法。二、分析可用双向链表进行求解,也可用循环队列进行存储。class Node{ Integer value; Node first; Node last; public Node(int val) { value = val; first = null; last = nu

2021-09-04 23:21:44 33

原创 2021-9-4 JDK11 maven打包时报错multiple points等等

bug 记录描述:   Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:testCompile (default-testCompile) on project bill-consumer: Execution default-testCompile of goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:testCompile f

2021-09-04 20:25:35 12

原创 java学习---dubbo+zookeeper微服务架构

Dubbo+Zookeeper微服务架构1、Apache Dubbo概述 1.1、Dubbo简介 1.2、Dubbo的服务架构2、服务注册中心 Zookeeper 2.1、ZooKeeper介绍 2.2、ZooKeeper安装 2.3、启动 ZooKeeper3、ZooKeeper快速入门 3.1、服务提供方 3.2、服务消费方 3.3、问题思考4、 Dubbo管理控制台 4.1、安装 4.2、使用5、 Du

2021-09-02 20:32:07 538 2

原创 622. 设计循环队列

算法记录LeetCode 题目:   设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。思路算法记录说明一、题目二、分析总结说明一、题目   循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。你的实现应该支持如下操作:MyCircul

2021-09-01 17:06:23 32

原创 138. 复制带随机指针的链表

算法记录LeetCode 题目:   给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。思路算法记录说明一、题目二、分析总结说明一、题目   构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 next 指针和 random 指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。复制链表中的指针都不应指向原链表中

2021-09-01 16:35:52 24

原创 86. 分隔链表

算法记录LeetCode 题目:   给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。  你应当 保留 两个分区中每个节点的初始相对位置。思路算法记录说明一、题目二、分析总结说明一、题目   输入:head = [1,4,3,2,5,2], x = 3  输出:[1,2,2,4,3,5]二、分析不改变相对顺序,只需要重头开始遍历链表,然后将大于和小于的分别组成一个单独链表。最后将两个链

2021-09-01 12:30:47 20

原创 82. 删除排序链表中的重复元素 II

算法记录LeetCode 题目:   存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除链表中所有存在数字重复情况的节点,只保留原始链表中 没有重复出现 的数字。  返回同样按升序排列的结果链表。思路算法记录说明一、题目二、分析总结说明一、题目   输入:head = [1,2,3,3,4,4,5]  输出:[1,2,5]二、分析删除重复的元素,因为是排序好的,也就是重复的都会挨在一起,先找到邻接的节点相等。然后找到第一个的头结点和该元素的最后一个,直接

2021-08-30 22:52:39 33

原创 剑指 Offer II 021. 删除链表的倒数第 n 个结点

算法记录LeetCode 题目:   给定一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。思路算法记录说明一、题目二、分析总结说明一、题目   输入:head = [1,2,3,4,5], n = 2  输出:[1,2,3,5]二、分析先求取整个链表的长度,在进行 m - n 的遍历即可找到需要删除点的父节点,直接删除即可。/** * Definition for singly-linked list. * public class ListNode {

2021-08-30 21:51:28 13

原创 24. 两两交换链表中的节点

算法记录LeetCode 题目:   给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。思路算法记录说明一、题目二、分析总结说明一、题目   你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。二、分析连续两个节点进行交换,也就是每次反转长度为二的链表。和 K 个数量节点反转类似,只是限定了数量为二。从头到尾进行遍历,每次进行两个节点的交换,步长为二。/** * Definition for singly-linked list. * public

2021-08-30 18:22:20 31

原创 25. K 个一组翻转链表

算法记录LeetCode 题目:   给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。思路算法记录说明一、题目二、分析总结说明一、题目   k 是一个正整数,它的值小于或等于链表的长度。  如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。二、分析和翻转给定区间的链表方法差不多,只需要依次遍历整条链表上的 K 个节点,然后将这段区间内的链表进行反转返回。直至链表结束或者剩余节点数已经不满足需要反转的数量为止。/** * Definit

2021-08-26 21:54:53 30 2

原创 92. 反转链表 II

算法记录LeetCode 题目:   给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。思路算法记录说明一、题目二、分析总结说明一、题目   输入:head = [1,2,3,4,5], left = 2, right = 4  输出:[1,4,3,2,5]二、分析和简单的反转链表是一样的,只是现在需要的是区间内反转。同样的找到翻转之

2021-08-26 19:35:26 17

原创 剑指 Offer 26. 树的子结构

算法记录LeetCode 题目:   输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)思路算法记录说明一、题目二、分析总结说明一、题目   B是A的子结构, 即 A中有出现和B相同的结构和节点值。  输入:A = [1,2,3], B = [3,1]  输出:false二、分析两棵树需要相等,则对应的每个节点上的数据也要相等。也就是说我们遍历整棵树,如果当前节点的值和需要比较的 B 树的根节点值相等,我们就将此节点作为根的子树和 B 树进行

2021-08-25 11:04:30 27

原创 剑指 Offer 54. 二叉搜索树的第k大节点

算法记录LeetCode 题目:   给定一棵二叉搜索树,请找出其中第k大的节点。思路算法记录说明一、题目二、分析总结说明一、题目   输入: root = [5,3,6,2,4,null,null,1], k = 3  输出: 4二、分析二插搜索树的性质是右子树上的节点大于根节点,左子树上的节点小于根节点,可以采用中序遍历直接拿到排序的串儿,然后再输出。这里根据其性质,来递归的寻找:如果右子树的节点个数大于了 K 的值,那么此节点只会存在右子树中;如果右子树的节点个数

2021-08-25 10:28:05 29

原创 222. 完全二叉树的节点个数

算法记录LeetCode 题目:   给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。思路算法记录说明一、题目二、分析总结说明一、题目   完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。二、分析求节点的个数,简单可用遍历方式累加即可。这里采用完全二叉树的性质来进行优化,根据完全二叉树的性质,可以得出两条结论:

2021-08-25 10:01:59 29

原创 105. 从前序与中序遍历序列构造二叉树

算法记录LeetCode 题目:   给定一棵树的前序遍历 preorder 与中序遍历 inorder。请构造二叉树并返回其根节点。思路算法记录说明一、题目二、分析总结说明一、题目   Input: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7]  Output: [3,9,20,null,null,15,7]二、分析简单的根据前序和中序构建二叉树问题。因为二叉树的定义是递归的,所以其构建也可以是递归进行的。前序遍历

2021-08-25 08:30:31 28

原创 java学习---Spring Cloud Config分布式配置中心

Spring-Cloud-Config 分布式配置 1、简介 1.1、问题 1.2、服务架构 1.3、仓库2、仓库创建 2.1、创建远程仓库 2.2、创建配置文件3、搭建配置中心微服务 3.1、添加项目依赖 3.2、配置启动类 3.3、添加配置文件 3.4、启动测试4、获取配置中心配置文件 4.1、添加依赖 4.2、修改配置 4.3、启动测试5、Spring Cloud Bus服务总线&n

2021-08-23 12:42:34 792

原创 java学习---spring-cloud-gateway网关配置

Spring Cloud Gateway一、 简介 1.1、名词概念 1.2、服务核心 1.3、服务架构二、 部署 2.1、依赖管理 2.2、启动类 2.3、配置文件三、 路由 3.1、id 3.2、uri 3.3、predicates 3.4、filters四、 跨域 4.1、源地址 4.2、请求方式五、 过滤器 5.1、简介 5.2、 配置全局默认过滤器 

2021-08-22 17:35:40 1011

原创 200. 岛屿数量

算法记录LeetCode 题目:   给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。思路算法记录说明一、题目二、分析总结说明一、题目   岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。  此外,你可以假设该网格的四条边均被水包围。二、分析在遍历数组时只需要对数值为 1 的位置进行处理即可,岛屿的数量即可转换为求取 1 的集合的数量。要看一个点是否和其他点相连接,需要判断其 上、下、左、右 是否有邻接。

2021-08-21 13:16:07 829

原创 103. 二叉树的锯齿形层序遍历

算法记录LeetCode 题目:   给定一个二叉树,返回其节点值的锯齿形层序遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。思路算法记录说明一、题目二、分析总结说明一、题目   给定一个二叉树,返回其节点值的锯齿形层序遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。二、分析和二叉树的层次遍历方法一致,只是在最后进行返回时进行一些处理工作。遍历数组,将处在奇数位置上的列表进行逆序即可。class Soluti

2021-08-20 16:27:33 780

原创 剑指 Offer 55 - II. 平衡二叉树

算法记录LeetCode 题目:   输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。思路算法记录说明一、题目二、分析总结说明一、题目   给定二叉树 [3, 9, 20, null, null, 15, 7]  返回 true 。二、分析按照平衡二叉树的定义,求取每个节点的左子树和右子树的深度,看是否相差大于 1 即可。采用递归从叶子节点开始返回,也就是每次的退层需要将节点的个数进行 +1 操

2021-08-20 11:46:40 837

原创 剑指 Offer 32 - II. 从上到下打印二叉树 II

算法记录LeetCode 题目:   从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。思路算法记录说明一、题目二、分析总结说明一、题目   从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。二、分析一般的树的层次遍历,可以采用队列进行辅助。我们这里采用记录层次的方式来完成遍历,假设根为第一层,则每往下层进行一次递归,层次数自然就会 +1 ,分别将数据写进对应的层次列表即可。class Solution { pu

2021-08-19 15:09:34 770

原创 547. 省份数量

算法记录LeetCode 题目:   有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连。  省份 是一组直接或间接相连的城市,组内不含其他没有相连的城市。  给你一个 n x n 的矩阵 isConnected ,其中 isConnected[i][j] = 1 表示第 i 个城市和第 j 个城市直接相连,而 isConnected[i][j] = 0 表示二者不直接相连。  返回矩阵中

2021-08-18 23:35:22 889

原创 1319. 连通网络的操作次数

算法记录LeetCode 题目:   用以太网线缆将 n 台计算机连接成一个网络,计算机的编号从 0 到 n-1。线缆用 connections 表示,其中 connections[i] = [a, b] 连接了计算机 a 和 b。  网络中的任何一台计算机都可以通过网络直接或者间接访问同一个网络中其他任意一台计算机。  给你这个计算机网络的初始布线 connections,你可以拔开任意两台直连计算机之间的线缆,并用它连接一对未直连的计算机。请你计算并返回使所有计算机都连通所需的最少操作次数。

2021-08-18 23:26:41 872

原创 215. 数组中的第K个最大元素

算法记录LeetCode 题目:   给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。  请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。思路算法记录说明一、题目二、分析总结说明一、题目   输入: [3,2,1,5,6,4] 和 k = 2。输出: 5二、分析题解很清楚,输出排序后的第 K 大的元素,也就是说我们需要维护一个最大序列,取出第 K 个值即可。排序方式很多,这里采用堆排序。class Solution

2021-08-18 14:45:49 770

output_yolo.avi

目标检测

2021-05-12

空空如也

空空如也

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

TA关注的人 TA的粉丝

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