自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(406)
  • 收藏
  • 关注

原创 SSM框架之Dubbo——远程服务调用

目录一、软件架构的演化过程1.1 单体架构1.2 垂直架构1.3 SOA架构1.4 微服务架构二、Apache Dubbo概述2.1 Dubbo简介2.2 Dubbo架构三、服务注册中心Zookeeper3.1 Zookeeper介绍3.2 安装Zookeper 3.3 启动、停止Zookeeper四、Dubbo快速入门4.1 服务生产者4.2 服务消费者五、Dubbo管理控制台5.1 安装 5.2 使用六、Dubbo相关配置说明6.1 包扫描6.2 协议6.3 启动时检查6.4 负载均衡七、解决Dubbo

2022-06-10 18:16:55 1833 1

原创 贪心算法题(2)摆动序列

目录摆动序列描述示例 1示例 2示例 3提示方法:贪心摆动序列描述如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 。第一个差(如果存在的话)可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。例如,[1, 7, 4, 9, 2, 5] 是一个 摆动序列 ,因为差值 (6, -3, 5, -7, 3)是正负交替出现的。相反,[1, 4, 7, 2, 5]和[1, 7, 4, 5, 5] 不是摆动序列,第一个...

2022-04-02 09:49:57 336

原创 贪心算法题(1)分发饼干

目录分发饼干描述示例1示例 2提示方法:贪心分发饼干描述假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。示例1输入: g = [1,..

2022-04-02 09:03:27 1795

原创 回溯算法题(12)全排列II

目录全排列II描述示例 1示例 2提示方法:回溯法全排列II描述给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。示例 1输入:nums = [1,1,2]输出:[[1,1,2],[1,2,1],[2,1,1]]示例 2输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]提示1 <= nums.len..

2022-04-01 21:16:16 190

原创 回溯算法题(11)全排列

目录全排列描述示例 1示例 2示例 3提示方法:回溯法全排列描述给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。示例 1输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2输入:nums = [0,1]输出:[[0,1],[1,0]]示例 3输入:nums = [1]输出:[[

2022-04-01 21:11:06 140

原创 回溯算法题(10)递增子序列

目录递增子序列描述示例 1示例 2提示方法:回溯法递增子序列描述给你一个整数数组 nums ,找出并返回所有该数组中不同的递增子序列,递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。数组中可能含有重复元素,如出现两个整数相等,也可以视作递增序列的一种特殊情况。示例 1输入:nums = [4,6,7,7]输出:[[4,6],[4,6,7],[4,6,7,7],[4,7],[4,7,7],[6,7],[6,7,7],[7,7]]示

2022-04-01 20:56:44 424

原创 回溯算法题(9)子集II

目录子集II描述示例 1示例 2提示方法:回溯法子集II描述给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。返回的解集中,子集可以按 任意顺序 排列。示例 1输入:nums = [1,2,2]输出:[[],[1],[1,2],[1,2,2],[2],[2,2]]示例 2输入:nums = [0]输出:[[],[0]]提示1 <= nums.lengt

2022-04-01 16:54:32 90

原创 回溯算法题(8)子集

目录子集描述示例 1示例 2提示方法:回溯法子集描述给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。示例 1输入:nums = [1,2,3]输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]示例 2输入:nums = [0]输出:[[],[0]]提示1 <= nums.lengt

2022-04-01 16:50:15 184

原创 回溯算法题(7)复原IP地址

复原IP地址描述有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 '.' 分隔。例如:"0.1.2.201" 和 "192.168.1.1" 是 有效 IP 地址,但是 "0.011.255.245"、"192.168.1.312" 和 "[email protected]" 是 无效 IP 地址。给定一个只包含数字的字符串 s ,用以表示一个 IP 地址,返回所有可能的有效 IP 地址,这些地址可以通过在 s 中插入'.' 来形成。你...

2022-04-01 11:24:52 218

原创 回溯算法题(6)分割回文串

分割回文串描述给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。回文串 是正着读和反着读都一样的字符串。示例 1输入:s = "aab"输出:[["a","a","b"],["aa","b"]]示例 2输入:s = "a"输出:[["a"]]提示1 <= s.length <= 16 s 仅由小写英文字母组成...

2022-03-13 14:43:21 218

原创 回溯算法题(5)组合总和II

组合总和II描述给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用 一次 。注意:解集不能包含重复的组合。示例1输入: candidates =[10,1,2,7,6,1,5], target =8,输出:[[1,1,6],[1,2,5],[1,7],[2,6]]示例 2输入: cand...

2022-03-13 10:46:06 397

原创 回溯算法题(4)组合总和

目录组合总和描述示例1示例2示例 3提示方法:回溯组合总和描述给你一个 无重复元素 的整数数组candidates 和一个目标整数target,找出candidates中可以使数字和为目标数target 的 所有不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。candidates 中的 同一个 数字可以 无限制重复被选取 。如果至少一个数字的被选数量不同,则两种组合是不同的。对于给定的输入,保证和为target 的不同...

2022-03-12 20:47:21 144

原创 回溯算法题(3)电话号码的字母组合

目录电话号码的字母组合描述示例 1示例 2示例 3提示方法:回溯电话号码的字母组合描述给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例 1输入:digits = "23"输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]示例 2输入:digits = ""输出:

2022-03-12 20:14:43 173

原创 SSM框架之RabbitMQ——消息中间件

一、MQ的基本概念1.1MQ概述MQ全称 Message Queue(消息队列),是在消息的传输过程中保存消息的容器。多用于分布式系统之间进行通信。在分布式系统中,通信主要包含两种方式:直接调用和借助第三方进行间接通信。MQ消息队列就是这个第三方,我们也成为消息中间件,而发送数据的或者提供服务的A系统我们称为生产者,接收数据的B系统我们称为消费者。1.2MQ的优缺点MQ的优点主要包括:应用解耦:提高系统容错性和可维护性 异步提速:提升用户体验和系统吞吐量..

2022-02-13 18:37:25 2686

原创 2022.01.22LeetCode每日一题——删除回文子序列

目录删除回文子序列描述示例 1示例 2示例 3提示方法:直接删除删除回文子序列描述给你一个字符串s,它仅由字母'a' 和 'b'组成。每一次删除操作都可以从 s 中删除一个回文子序列。返回删除给定字符串中所有字符(字符串为空)的最小删除次数。「子序列」定义:如果一个字符串可以通过删除原字符串某些字符而不改变原字符顺序得到,那么这个字符串就是原字符串的一个子序列。「回文」定义:如果一个字符串向后和向前读是一致的,那么这个字符串就是一个回文。示...

2022-01-22 22:39:59 157

原创 2022.01.21LeetCode每日一题——跳跃游戏IV

目录跳跃游戏IV描述示例 1示例 2示例 3示例 4示例 5提示方法:广度优先搜索跳跃游戏IV描述给你一个整数数组 arr ,你一开始在数组的第一个元素处(下标为 0)。每一步,你可以从下标 i 跳到下标:i + 1满足:i + 1 < arr.length i - 1满足:i - 1 >= 0 j满足:arr[i] == arr[j]且i != j请你返回到达数组最后一个元素的下标处所需的 最少操作次数 。注意:任...

2022-01-21 18:40:26 184

原创 2022.01.20LeetCode每日一题——石子游戏 IX

目录石子游戏 IX描述示例 1示例 2示例 3提示方法:博弈石子游戏 IX描述Alice 和 Bob 再次设计了一款新的石子游戏。现有一行 n 个石子,每个石子都有一个关联的数字表示它的价值。给你一个整数数组 stones ,其中 stones[i] 是第 i 个石子的价值。Alice 和 Bob 轮流进行自己的回合,Alice 先手。每一回合,玩家需要从 stones 中移除任一石子。如果玩家移除石子后,导致 所有已移除石子 的价值总和 可以被 3 整.

2022-01-20 17:15:03 146

原创 2022.01.19LeetCode每日一题——存在重复元素II

目录存在重复元素II描述示例 1示例 2示例 3提示方法一:暴力方法二:滑动窗口存在重复元素II描述给你一个整数数组 nums 和一个整数 k ,判断数组中是否存在两个 不同的索引 i 和 j ,满足 nums[i] == nums[j] 且 abs(i - j) <= k 。如果存在,返回 true ;否则,返回 false 。示例 1输入:nums = [1,2,3,1], k = 3输出:true示例 2输入:nums

2022-01-19 16:57:52 321

原创 2022.01.18LeetCode每日一题——最小时间差

目录最小时间差描述示例 1示例 2提示方法:排序+鸽巢原理最小时间差描述给定一个 24 小时制(小时:分钟 "HH:MM")的时间列表,找出列表中任意两个时间的最小时间差并以分钟数表示。示例 1输入:timePoints = ["23:59","00:00"]输出:1示例 2输入:timePoints = ["00:00","23:59","00:00"]输出:0提示2 <= timePoints.length <=

2022-01-18 17:37:40 165

原创 2022.01.17LeetCode每日一题——统计元音字母序列的数目

目录统计元音字母序列的数目描述示例 1示例 2示例 3提示方法:动态规划统计元音字母序列的数目描述给你一个整数n,请你帮忙统计一下我们可以按下述规则形成多少个长度为n的字符串:字符串中的每个字符都应当是小写元音字母('a', 'e', 'i', 'o', 'u') 每个元音'a'后面都只能跟着'e' 每个元音'e'后面只能跟着'a'或者是'i' 每个元音'i'后面不能 再跟着另一个'i' 每个元音'o'后面只能跟着'i'...

2022-01-17 21:33:25 252

原创 2022.01.16LeetCode每日一题——链表随机节点

链表随机节点描述给你一个单链表,随机选择链表的一个节点,并返回相应的节点值。每个节点被选中的概率一样 。实现 Solution 类:Solution(ListNode head) 使用整数数组初始化对象。 int getRandom() 从链表中随机选择一个节点并返回该节点的值。链表中所有节点被选中的概率相等。 示例输入["Solution", "getRandom", "getRandom", "getRandom", "getRandom", "getR...

2022-01-16 23:23:11 75

原创 2022.01.15LeetCode每日一题——计算力扣银行的钱

目录计算力扣银行的钱描述示例 1示例 2示例 3提示方法一:暴力方法二:等差数列求和计算力扣银行的钱描述Hercy 想要为购买第一辆车存钱。他 每天 都往力扣银行里存钱。最开始,他在周一的时候存入 1 块钱。从周二到周日,他每天都比前一天多存入 1 块钱。在接下来每一个周一,他都会比 前一个周一 多存入 1 块钱。给你 n ,请你返回在第 n 天结束的时候他在力扣银行总共存了多少块钱。示例 1输入:n = 4输出:10解释:第 4 天后

2022-01-15 21:57:17 193

原创 2022.01.14LeetCode每日一题——查找和最小的K对数字

目录查找和最小的K对数字描述示例 1示例 2示例 3提示方法:优先级队列查找和最小的K对数字描述给定两个以 升序排列 的整数数组 nums1 和 nums2 , 以及一个整数 k 。定义一对值 (u,v),其中第一个元素来自 nums1,第二个元素来自 nums2 。请找到和最小的 k 个数对 (u1,v1), (u2,v2) ... (uk,vk) 。示例 1输入: nums1 = [1,7,11], nums2 = [2,4,6], k =

2022-01-14 13:11:45 164

原创 2022.01.13LeetCode每日一题——至少是其他数字两倍的最大数

目录至少是其他数字两倍的最大数描述示例 1示例 2示例 3提示方法:遍历至少是其他数字两倍的最大数描述给你一个整数数组 nums ,其中总是存在 唯一的 一个最大整数 。请你找出数组中的最大元素并检查它是否 至少是数组中每个其他数字的两倍 。如果是,则返回 最大元素的下标 ,否则返回 -1 。示例 1输入:nums = [3,6,1,0]输出:1解释:6 是最大的整数,对于数组中的其他整数,6 大于数组中其他元素的两倍。6 的下标是 1 ,所以

2022-01-13 18:17:10 109

原创 2022.01.12LeetCode每日一题——递增的三元子序列

目录递增的三元子序列示例 1示例 2示例 3提示方法:贪心递增的三元子序列给你一个整数数组 nums ,判断这个数组中是否存在长度为 3 的递增子序列。如果存在这样的三元组下标 (i, j, k)且满足 i < j < k ,使得nums[i] < nums[j] < nums[k] ,返回 true ;否则,返回 false 。示例 1输入:nums = [1,2,3,4,5]输出:true解释:任何 i < j &..

2022-01-12 20:49:02 326

原创 2022.01.11LeetCode每日一题——逃离大迷宫

目录逃离大迷宫描述示例 1示例 2提示方法:广度优先搜索逃离大迷宫描述在一个 的网格中,每个网格上方格的坐标为(x, y) 。现在从源方格source = [sx, sy]开始出发,意图赶往目标方格target = [tx, ty] 。数组 blocked 是封锁的方格列表,其中每个 blocked[i] = [xi, yi] 表示坐标为 (xi, yi) 的方格是禁止通行的。每次移动,都可以走到网格中在四个方向上相邻的方格,只要该方格 不 在给出的封...

2022-01-11 20:02:25 87

原创 2022.01.10LeetCode每日一题——累加数

目录累加数描述示例 1示例 2提示方法:深度优先搜索累加数描述累加数 是一个字符串,组成它的数字可以形成累加序列。一个有效的 累加序列 必须 至少 包含 3 个数。除了最开始的两个数以外,字符串中的其他数都等于它之前两个数相加的和。给你一个只包含数字 '0'-'9' 的字符串,编写一个算法来判断给定输入是否是 累加数 。如果是,返回 true ;否则,返回 false 。说明:累加序列里的数 不会 以 0 开头,所以不会出现 1, 2, 03 或者 1,

2022-01-10 20:04:01 76

转载 2022.01.09LeetCode每日一题——按键持续时间最长的键

按键持续时间最长的键描述LeetCode 设计了一款新式键盘,正在测试其可用性。测试人员将会点击一系列键(总计 n 个),每次一个。给你一个长度为 n 的字符串 keysPressed ,其中 keysPressed[i] 表示测试序列中第 i 个被按下的键。releaseTimes 是一个升序排列的列表,其中 releaseTimes[i] 表示松开第 i 个键的时间。字符串和数组的 下标都从 0 开始 。第 0 个键在时间为 0 时被按下,接下来每个键都 恰好 在前一个键松开时被按下...

2022-01-10 19:34:53 73

原创 2022.01.08LeetCode每日一题——格雷编码

目录格雷编码描述示例 1示例 2提示方法:对称生成格雷编码描述n 位格雷码序列 是一个由 2n 个整数组成的序列,其中:每个整数都在范围 [0, 2n - 1] 内(含 0 和 2n - 1) 第一个整数是 0 一个整数在序列中出现 不超过一次 每对 相邻 整数的二进制表示 恰好一位不同 ,且 第一个 和 最后一个 整数的二进制表示 恰好一位不同给你一个整数 n ,返回任一有效的 n 位格雷码序列 。示例 1输入:n = 2输出:[0,1,

2022-01-08 11:06:14 386

原创 2022.01.07LeetCode每日一题——括号的最大嵌套深度

目录括号的最大嵌套深度描述示例 1示例 2示例 3示例 4提示方法:遍历括号的最大嵌套深度描述如果字符串满足以下条件之一,则可以称之为 有效括号字符串(valid parentheses string,可以简写为 VPS):字符串是一个空字符串 "",或者是一个不为 "(" 或 ")" 的单字符。 字符串可以写为 AB(A 与 B字符串连接),其中 A 和 B 都是 有效括号字符串 。 字符串可以写为 (A),其中 A 是一个 有效括号字符串 。类.

2022-01-07 21:18:40 72

原创 2022.01.06LeetCode每日一题——简化路径

目录简化路径描述示例 1示例 2示例 3示例 4提示方法:栈模拟简化路径描述给你一个字符串 path ,表示指向某一文件或目录的Unix 风格 绝对路径 (以 '/' 开头),请你将其转化为更加简洁的规范路径。在 Unix 风格的文件系统中,一个点(.)表示当前目录本身;此外,两个点 (..)表示将目录切换到上一级(指向父目录);两者都可以是复杂相对路径的组成部分。任意多个连续的斜杠(即,'//')都被视为单个斜杠 '/' 。 对于此问题,任何其他格式..

2022-01-06 15:07:07 99

原创 2022.01.05LeetCode每日一题——替换所有的问号

目录替换所有的问号描述示例 1示例 2示例 3示例 4提示方法:遍历扫描替换所有的问号描述给你一个仅包含小写英文字母和 '?' 字符的字符串 s,请你将所有的 '?' 转换为若干小写字母,使最终的字符串不包含任何 连续重复 的字符。注意:你 不能 修改非 '?' 字符。题目测试用例保证 除 '?' 字符 之外,不存在连续重复的字符。在完成所有转换(可能无需转换)后返回最终的字符串。如果有多个解决方案,请返回其中任何一个。可以证明,在给定的约束条件下

2022-01-06 14:54:49 81

原创 2022.01.04LeetCode每日一题——猫和老鼠

目录猫和老鼠描述示例 1示例 2提示方法:动态规划猫和老鼠描述两位玩家分别扮演猫和老鼠,在一张 无向 图上进行游戏,两人轮流行动。图的形式是:graph[a] 是一个列表,由满足ab 是图中的一条边的所有节点 b 组成。老鼠从节点 1 开始,第一个出发;猫从节点 2 开始,第二个出发。在节点 0 处有一个洞。在每个玩家的行动中,他们 必须 沿着图中与所在当前位置连通的一条边移动。例如,如果老鼠在节点 1 ,那么它必须移动到 graph[1] 中的任一节点.

2022-01-04 12:41:19 2800

原创 2022.01.03LeetCode每日一题——一周中的第几天

目录一周中的第几天描述示例 1示例 2示例 3提示方法:找规律一周中的第几天描述给你一个日期,请你设计一个算法来判断它是对应一周中的哪一天。输入为三个整数:day、month 和 year,分别表示日、月、年。您返回的结果必须是这几个值中的一个 {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}。示例 1输入:day = 31, month

2022-01-03 20:09:44 97

原创 应用容器Docker

我们写的代码会接触到好几个环境:开发环境、测试环境以及生产环境:开发人员在开发环境下写好了程序,就会打包成war包给测试人员进行测试,测试人员在测试环境下测试没问题后会给运维人员,运维人员将war包部署到生产环境上,能够成功允许则流程结束。但是这个过程中往往会出现一些问题,比如开发环境上用的是JDK8的版本,但是测试环境上用的是JDK7的版本,这样代码就可能出一些问题,那么我们能不能将环境和代码一起打包测试呢?答案当然是可以的,我们把环境和代码放在一个容器里面,把容器传给测试人员进行测试..

2022-01-02 20:57:06 1123

原创 2022.01.02LeetCode每日一题——消除游戏

目录消除游戏描述示例 1示例 2提示方法二:递归消除游戏描述列表 arr 由在范围 [1, n] 中的所有整数组成,并按严格递增排序。请你对 arr 应用下述算法:从左到右,删除第一个数字,然后每隔一个数字删除一个,直到到达列表末尾。 重复上面的步骤,但这次是从右到左。也就是,删除最右侧的数字,然后剩下的数字每隔一个删除一个。 不断重复这两步,从左到右和从右到左交替进行,直到只剩下一个数字。给你整数 n ,返回 arr 最后剩下的数字。示例 1输

2022-01-02 13:14:56 2081

原创 2022.01.01LeetCode每日一题——将一维数组转变成二维数组

目录将一维数组转变成二维数组描述示例 1示例 2示例 3示例 4提示方法:迭代将一维数组转变成二维数组描述给你一个下标从 0开始的一维整数数组original和两个整数m和n。你需要使用original中所有元素创建一个m行n列的二维数组。original中下标从 0到 n - 1(都 包含 )的元素构成二维数组的第一行,下标从 n到 2 * n - 1(都 包含)的元素构成二维数组的第二行,依此类推。请你根...

2022-01-02 13:05:57 107

原创 2021.12.31LeetCode每日一题——完美数

目录完美数描述示例 1示例 2示例 3示例 4示例 5提示方法:枚举完美数描述对于一个 正整数,如果它和除了它自身以外的所有 正因子 之和相等,我们称它为 「完美数」。给定一个 整数 n, 如果是完美数,返回 true,否则返回 false示例 1输入:num = 28输出:true解释:28 = 1 + 2 + 4 + 7 + 141, 2, 4, 7, 和 14 是 28 的所有正因子示例 2输入:num = 6输

2021-12-31 08:58:04 209

原创 2021.12.30LeetCode每日一题——一手顺子

目录一手顺子描述示例 1示例 2提示方法:哈希表一手顺子描述Alice 手中有一把牌,她想要重新排列这些牌,分成若干组,使每一组的牌数都是 groupSize ,并且由 groupSize 张连续的牌组成。给你一个整数数组 hand 其中 hand[i] 是写在第 i 张牌,和一个整数 groupSize 。如果她可能重新排列这些牌,返回 true ;否则,返回 false 。示例 1输入:hand = [1,2,3,6,2,3,4,7,8], gro

2021-12-30 22:12:53 220

原创 2021.12.29LeetCode每日一题——统计特殊四元组

目录统计特殊四元组描述示例 1示例 2示例 3提示方法一:暴力方法二:哈希表方法三:哈希改进统计特殊四元组描述给你一个下标从0开始的整数数组 nums ,返回满足下述条件的不同四元组 (a, b, c, d) 的数目 :nums[a] + nums[b] + nums[c] == nums[d] ,且 a < b < c < d示例 1输入:nums = [1,2,3,6]输出:1解释:满足要求的唯一一个四元组是 (0

2021-12-29 12:56:56 816

空空如也

空空如也

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

TA关注的人

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