自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringCloud Security + OAuth2 集成之回调地址拓展

SpringCloud Security + OAuth2 集成之回调地址拓展技术栈:springCloud (Finchley.SR2)springBoot(2.0.4)OAuth (2.3.3.RELEASE)Security(2.3.3.RELEASE)1.问题引出在实际应用中,单调登录有验证 前端请求中携带的回调地址 与 数据库所存对应客户端ID所允许的回调地址 做验证的过程...

2020-01-08 11:54:29 3749 3

原创 扣初级算法-35-数学问题-Fizz Buzz

学习目标:本次学习目标为 力扣初级算法-数学问题,其中主要的LC如下:Fizz Buzz学习内容:Fizz Buzz -----(链接)给你一个整数 n ,找出从 1 到 n 各个整数的 Fizz Buzz 表示,并用字符串数组 answer(下标从 1 开始)返回结果,其中:answer[i] == “FizzBuzz” 如果 i 同时是 3 和 5 的倍数。answer[i] == “Fizz” 如果 i 是 3 的倍数。answer[i] == “Buzz” 如果 i 是 5

2021-12-09 23:08:26 341

原创 扣初级算法-34-设计问题-最小栈

学习目标:本次学习目标为 力扣初级算法-最小栈,其中主要的LC如下:最小栈学习内容:最小栈 -----(链接)设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。示例 1:输入:[“MinStack”,“push”,“push”,“push”,“getMin”,“pop”,“top”,

2021-12-08 23:14:30 191

原创 扣初级算法-33-设计问题-打乱数组

学习目标:本次学习目标为 力扣初级算法-设计问题,其中主要的LC如下:打乱数组学习内容:打乱数组 -----(链接)给你一个整数数组 nums ,设计算法来打乱一个没有重复元素的数组。实现 Solution class:Solution(int[] nums) 使用整数数组 nums 初始化对象int[] reset() 重设数组到它的初始状态并返回int[] shuffle() 返回数组随机打乱后的结果示例 1:输入[“Solution”, “shuffle”, “r

2021-12-06 23:28:49 265

原创 扣初级算法-32-动态规划-打家劫舍

学习目标:本次学习目标为 力扣初级算法-动态规划,其中主要的LC如下:打家劫舍学习内容:打家劫舍 -----([链接](https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xnq4km/)你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整

2021-12-06 22:24:35 147

原创 扣初级算法-32-动态规划-最大子序和

学习目标:本次学习目标为 力扣初级算法-动态规划,其中主要的LC如下:最大子序和学习内容:最大子序和 -----([链接](https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xn3cg3/)给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组 是数组中的一个连续部分。示例 1:输入:nums = [-2,1,-3,4,-1,2,1,-5

2021-12-05 23:57:11 76

原创 扣初级算法-31-动态规划-时机

学习目标:本次学习目标为 力扣初级算法-动态规划,其中主要的LC如下:时机学习内容:买卖的最佳时机 -----([链接](https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xn8fsh/)给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定gp第 i 天的价格。你只能选择 某一天 买入这只GP,并选择在 未来的某一个不同的日子 卖出该GP。设计一个算法来计算你所能获取的最大

2021-12-03 00:20:34 77

原创 扣初级算法-30-动态规划-爬楼梯

学习目标:本次学习目标为 力扣初级算法-动态规划,其中主要的LC如下:爬楼梯学习内容:爬楼梯 -----([链接](https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xn854d/)假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。

2021-12-02 00:22:42 199

原创 扣初级算法-29-排序和搜索-第一个错误的版本

学习目标:本次学习目标为 力扣初级算法-排序和搜索,其中主要的LC如下:第一个错误的版本学习内容:第一个错误的版本 -----([链接](https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xnto1s/)你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2

2021-12-01 23:05:32 77

原创 扣初级算法-28-排序和搜索-合并两个有序数组

学习目标:本次学习目标为 力扣初级算法-排序和搜索,其中主要的LC如下:合并两个有序数组学习内容:合并两个有序数组 -----([链接](https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xnumcr/)给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。示例 1:输入:nums1 = [1,2,3,0

2021-11-30 23:16:54 217

原创 扣初级算法-27-树-将有序数组转换为二叉搜索树

学习目标:本次学习目标为 力扣初级算法-树,其中主要的LC如下:将有序数组转换为二叉搜索树学习内容:将有序数组转换为二叉搜索树 -----([链接](https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xninbt/)给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。

2021-11-29 23:47:24 106

原创 扣初级算法-26-树-二叉树的层序遍历

学习目标:本次学习目标为 力扣初级算法-树,其中主要的LC如下:二叉树的层序遍历学习内容:二叉树的层序遍历 -----([链接](https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xnldjj/)给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。例如,二叉树:[3,9,20,null,null,15,7],3/ \9 20/ \15 7返回其

2021-11-26 23:51:39 91

原创 扣初级算法-25-树-对称二叉树

学习目标:本次学习目标为 力扣初级算法-树,其中主要的LC如下:对称二叉树学习内容:验证二叉搜索树 -----([链接](https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xn7ihv/)给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。1/ \2 2/ \ / \3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则

2021-11-25 22:22:27 4528

原创 扣初级算法-24-树-验证二叉搜索树

学习目标:本次学习目标为 力扣初级算法-树,其中主要的LC如下:验证二叉搜索树学习内容:验证二叉搜索树 -----([链接](https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xn08xg/)给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。有效 二叉搜索树定义如下:节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二

2021-11-24 23:29:23 331

原创 扣初级算法-23-树-二叉树的最大深度

学习目标:本次学习目标为 力扣初级算法-树,其中主要的LC如下:二叉树的最大深度学习内容:二叉树的最大深度 -----([链接](https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xnd69e/)给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例1:给定二叉树 [3,9,20,null,null,15,7]返回它

2021-11-23 23:51:47 99

原创 扣初级算法-22-链表-环形链表

学习目标:本次学习目标为 力扣初级算法-链表,其中主要的LC如下:环形链表学习内容:环形链表 -----(链接)给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回

2021-11-22 23:57:54 97

原创 扣初级算法-21-链表-合并两个有序链表

学习目标:本次学习目标为 力扣初级算法-链表,其中主要的LC如下:回文链表环形链表学习内容:回文链表 -----(链接)给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。示例1: 示例2:示例3:说明:解题思路:解法一: 常规解法边界问题:删除位大于入参的链表的长度 或者直接删除首结点的情况代码逻辑过程:代码实现:解题思路:解法二: 双指针解法边界问题:删除位大于入参的链表的长度 或者直接删除首结点的

2021-11-22 00:00:04 3548

原创 力扣初级算法-20-链表-合并两个有序链表

学习目标:本次学习目标为 力扣初级算法-链表,其中主要的LC如下:合并两个有序链表学习内容:删除链表的倒数第N个节点 -----(链接)将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例1:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例2:输入:l1 = [], l2 = []输出:[]示例3:输入:l1 = [], l2 = [0]输出:[0]说明:

2021-11-21 23:09:15 4243

原创 力扣初级算法-19-链表-反转链表

学习目标:本次学习目标为 力扣初级算法-链表,其中主要的LC如下:反转链表学习内容:反转链表-----(链接)给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。示例1:输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]示例2:输入:head = [1,2]输出:[2,1]示例3:输入:head = []输出:[]解题思路:解法一:边界问题:代码逻辑过程:代码实现:解题思路:解法

2021-11-20 23:29:27 403

原创 力扣初级算法-18-链表-删除链表的倒数第N个节点

学习目标:本次学习目标为 力扣初级算法-链表,其中主要的LC如下:删除链表的倒数第N个节点学习内容:删除链表的倒数第N个节点 -----(链接)给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。示例1:输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]示例2:输入:head = [1], n = 1输出:[]示例3:输入:head = [1,2], n = 1输出:[1]说明:链表中结点的数目为 sz1 &

2021-11-20 00:43:06 799

原创 【CP】-01-IDEA远程Docker操作问题

问题描述为了便利本地操作远程服务器的Docker,可实时本地去操作远程服务的Docker,就在IDEA中配置了Docker,但是返现远程操作 docker 时,传输文件出现以下 build Log错误。问题分析通过进度条,可以大概定位成是 daemon的问题,网上找了很多资料都是说 文件过大导致的,但是实际传输的JAR包大小只有60M,而网上给到的解决办法都是吧其他文件挪开,但是不能从根本上解决问题,因为最后还是要传输 jar包后续考虑 映射本地路径来传输文件,原因是 build image的时

2021-11-19 15:37:14 689

原创 【JAVA】- 配置加解密之Jasypt的使用

背景对于配置中心的账号、密码进行加密,项目汇总用到的是 jasypt 的解决方案。Maven 依赖<dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>1.16</version></dependency&g

2021-11-19 15:19:08 1540

原创 力扣初级算法-17-链表-删除链表中的节点

学习目标:本次学习目标为 力扣初级算法-链表,其中主要的LC如下:删除链表中的节点学习内容:删除链表中的节点 -----(链接)请编写一个函数,用于 删除单链表中某个特定节点 。在设计函数时需要注意,你无法访问链表的头节点 head ,只能直接访问 要被删除的节点 。题目数据保证需要删除的节点 不是末尾节点 。示例1:示例2:输入:head = [4,5,1,9], node = 1输出:[4,5,9]解释:指定链表中值为 1 的第三个节点,那么在调用了你的函数之后

2021-11-19 00:10:29 731

原创 力扣初级算法-16-字符串-外观数列

学习目标:本次学习目标为 力扣初级算法-数组,其中主要的LC如下:最长公共前缀学习内容:最长公共前缀 -----(链接)编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例1:输入:strs = [“flower”,“flow”,“flight”]输出:“fl”示例2:输入:strs = [“dog”,“racecar”,“car”]输出:""解释:输入不存在公共前缀。说明:1 <= strs.length &

2021-11-18 00:22:28 101

原创 力扣初级算法-15-字符串-外观数列

学习目标:本次学习目标为 力扣初级算法-数组,其中主要的LC如下:外观数列学习内容:外观数列 -----(链接)给定一个正整数 n ,输出外观数列的第 n 项。「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。你可以将其视作是由递归公式定义的数字字符串序列:countAndSay(1) = “1”countAndSay(n) 是对 countAndSay(n-1) 的描述,然后转换成另一个数字字符串。前五项如下:11121

2021-11-17 01:00:54 229

原创 力扣初级算法-14-字符串-实现 strStr()

学习目标:本次学习目标为 力扣初级算法-字符串,其中主要的LC如下:实现 strStr()学习内容:实现 strStr() -----(链接)实现 strStr() 函数。给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。示例1:输入:haystack = “hello”, needle = “ll”输出:2示例2:输入:haystack

2021-11-16 00:18:50 476

原创 力扣初级算法-13-字符串-字符串转换整数 (atoi)

学习目标:本次学习目标为 力扣初级算法-字符串,其中主要的LC如下:字符串转换整数 (atoi)学习内容:字符串转换整数 (atoi) -----(链接)请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。函数 myAtoi(string s) 的算法如下:读入字符串并丢弃无用的前导空格检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如

2021-11-14 23:35:04 210

原创 力扣初级算法-12-字符串-验证回文串

学习目标:本次学习目标为 力扣初级算法-字符串,其中主要的LC如下:验证回文串学习内容:验证回文串 -----(链接)给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例1:输入: “A man, a plan, a canal: Panama”输出: true解释:“amanaplanacanalpanama” 是回文串示例2:输入: “race a car”输出: false解释

2021-11-14 17:30:40 1046

原创 力扣初级算法-11-字符串-有效的字母异位词

学习目标:本次学习目标为 力扣初级算法-字符串,其中主要的LC如下:有效的字母异位词学习内容:有效的字母异位词-----(链接)给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。示例1:输入: s = “anagram”, t = “nagaram”输出: true示例2:输入: s = “rat”, t = “car”输出: false说明: s

2021-11-14 00:25:05 273

原创 力扣初级算法-10-字符串-字符串中的第一个唯一字符

学习目标:本次学习目标为 力扣初级算法-字符串,其中主要的LC如下:字符串中的第一个唯一字符学习内容:字符串中的第一个唯一字符-----(链接)示例1:s = “leetcode”返回 0s = “loveleetcode”返回 2说明: 你可以假定该字符串只包含小写字母解题思路:解法一: 两次遍历边界问题:字符串为空的问题代码逻辑过程:将字符串拆解为 字符数组,直接嵌套循环,二次遍历。直接二次循环,同时将字符转换为数字,以此作为统计数组的下下标,当

2021-11-13 00:20:01 893

原创 力扣初级算法-09-字符串-整数反转

学习目标:本次学习目标为 力扣初级算法-字符串,其中主要的LC如下:整数反转学习内容:只出现一次的数字 (链接)示例1:示例2:说明:进阶:解题思路:解法一:边界问题:代码逻辑过程:代码实现:只出现一次的数字 (链接)示例1:示例2:说明:进阶:解法一:边界问题:解题思路:代码逻辑过程:代码实现:学习笔记:...

2021-11-12 00:09:09 390

原创 力扣初级算法-08-字符串-反转字符串

学习目标:本次学习目标为 力扣初级算法-字符串,其中主要的LC如下:反转字符串整数反转学习内容:反转字符串 -----(链接)示例1:示例2:说明:进阶:解题思路:解法一:边界问题:代码逻辑过程:代码实现:整数反转 (链接)示例1:示例2:说明:进阶:解法一:边界问题:解题思路:代码逻辑过程:代码实现:学习笔记:...

2021-11-11 00:51:20 1004

原创 力扣初级算法-07-数组-旋转图像

学习目标:本次学习目标为 力扣初级算法-数组,其中主要的LC如下:两个数组的交集 II加一学习内容:两个数组的交集 II -----(链接)示例1:示例2:说明:进阶:解题思路:解法一:边界问题:代码逻辑过程:代码实现:只出现一次的数字 (链接)示例1:示例2:说明:进阶:解法一:边界问题:解题思路:代码逻辑过程:代码实现:学习笔记:

2021-11-09 23:48:25 861

原创 力扣初级算法-06-数组-有效的数独

学习目标:本次学习目标为 力扣初级算法-数组,其中主要的LC如下:有效的数独旋转图像学习内容:有效的数独 -----(链接)请你判断一个 9x9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图)数独部分空格内已填入了数字,空白格用 ‘.’ 表示。示例1:示例2:说明:进阶:

2021-11-08 23:54:21 169

原创 力扣初级算法-05-数组-移动零、两数之和

学习目标:本次学习目标为 力扣初级算法-数组,其中主要的LC如下:移动零两数之和学习内容:移动零-----(链接)给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例1:输入: [0,1,0,3,12]输出: [1,3,12,0,0]必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。解题思路:解法一: 把非零元素往前移动边界问题:考虑数组为null 和空的情况代码逻辑过程:循环遍历元素,当代码实

2021-11-06 00:01:35 66

原创 力扣初级算法-04-数组-两个数组的交集 II、加一

学习目标:本次学习目标为 力扣初级算法-数组,其中主要的LC如下:两个数组的交集 II加一学习内容:两个数组的交集 II (链接)给定两个数组,编写一个函数来计算它们的交集。示例1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2,2]示例2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[4,9]说明:输出结果中每个元素出现的次数,应与元素在两个数组中出现次数的最小值一致。我们可以不考

2021-11-05 00:02:12 139

原创 力扣初级算法-03-数组-存在重复元素、只出现一次的数字

学习目标:本次学习目标为 力扣初级算法-数组,其中主要的LC如下:存在重复元素学习内容:旋转数组 (链接)给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。进阶:尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。你可以使用空间复杂度为 O(1) 的 原地 算法解决这个问题吗?示例1:输入: nums = [1,2,3,4,5,6,7], k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5

2021-11-03 23:36:06 203

原创 力扣初级算法-02-数组-旋转数组

学习目标:本次学习目标为 力扣初级算法-数组,其中主要的LC如下:旋转数组存在重复元素学习内容:旋转数组 (链接)给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。进阶:尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。你可以使用空间复杂度为 O(1) 的 原地 算法解决这个问题吗?示例1:输入: nums = [1,2,3,4,5,6,7], k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,

2021-11-02 23:08:40 159

原创 力扣初级算法-01-数组-删除排序重复项、买卖问题

力扣初级算法-01学习目标本次学习目标为 力扣初级算法-数组,其中主要的LC如下:删除排序数组中的重复项买卖股票的最佳时机 II学习详解学习笔记学习总结

2021-11-01 14:49:32 112

原创 力扣初级算法学习目录

初级算法学习目录背景此初级算法学习清单基于力扣-初级算法,旨在学习初级算法基础知识,对初级算法有简单的认识,及一些基本的解题思路。初级算法学习主要分为九大基础模块, 分别为数组、字符串、链表、树、排序和搜素、动态规划、设计问题、数学和其他。学习目录清单数组删除排序数组中的重复项买卖股票的最佳时机 II字符串链表树排序和搜索动态规划设计问题数学其他...

2021-11-01 09:23:27 143

空空如也

空空如也

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

TA关注的人

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