自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

无名之辈,我是谁

分享后端技术、文学艺术等。公众号:灵洛的人间乐园

  • 博客(47)
  • 资源 (1)
  • 收藏
  • 关注

原创 【数据结构与算法之美学习】Trie树:如何实现搜索引擎的搜索关键词提示功能?

文章目录一.Trie树的介绍二.Trie树是怎么构造出来的?三.如何实现一棵Trie树?一.Trie树的介绍搜索引擎的搜索关键词提示功能,它底层使用的是Trie树。Trie树,也叫“字典树”。顾名思义,它是一个树形结构。它是一种专门处理字符串匹配的数据结构,用来解决在一组字符串集合中快速查找某个字符串的问题。假设我们有6个字符串,它们分别是:how,hi,her,hello,so,see。我们希望在里面多次查找某个字符串是否存在。Trie树的本质,就是利用字符串之间的公共前缀,将重复的前缀合并在一

2021-12-11 17:16:12 818

原创 数据结构与算法——冒泡排序、快速排序、堆排序的实现与效率

文章目录命令模式的定义场景:实现遥控器1.创建命令接口2.创建具体命令对象:开灯3.使用命令对象测试命令模式的用途命令模式的定义将请求封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。它实现了请求调用者和接收者之间的解耦。场景:实现遥控器当我们按下遥控器的开关,就可以实现对应的功能,如:开灯、关灯。现在我们使用命令模式来实现这个功能。请求者:人(遥控器)接收者:电灯命令对象:开灯1.创建命令接口创建一个命令,它有一个执行的方法。/** * @author 灵洛 * @da

2021-12-02 00:01:44 538

原创 设计模式——适配器模式

文章目录适配器模式定义:将一个接口转换为另一个接口,以符合客户的期望目标接口:Duck原始接口:Turkey建立适配器,将原始接口适配成目标接口测试代码另一个例子:将枚举适配到迭代器总结与装饰者模式、外观模式的区别适配器模式定义:将一个接口转换为另一个接口,以符合客户的期望目标接口:Duck建一个鸭子接口,鸭子具有呱呱叫和飞行的能力。/** * 适配器模式:将一个接口转换为另一个接口,以符合客户的期望 * * @author lingluo * @date 2021/12/1 22:16

2021-12-01 23:22:38 656 1

原创 Java创建,删除目录

文章目录创建目录删除文件/目录创建目录递归创建目录public class CreateDirsTest { private static final String EXPORT_PATH = "D:\\hehe\\a.txt"; public static void main(String[] args) { File fPath = new File(EXPORT_PATH); completeDir(fPath); } priv

2021-11-26 17:55:16 268

原创 微服务启动时,Spring创建Bean报错:java.lang.NoClassDefFoundError

具体错误信息BeanPostProcessor before instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: com/google/gson/JsonSyntaxExceptionCaused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.sp

2021-11-26 15:45:27 1721

原创 判断字符是不是空格的办法

/** * 特殊字符:判断是否是空格 * * @param s s * @return boolean */ public static boolean isSpace(String s) { char[] result = s.toCharArray(); for (char b1 : result) { if ((int) b1 == 32 || (int) b1 == 160) {

2021-11-17 10:12:14 2662

原创 获取字符串长度,判断字符是否是中文的两种方法

1.使用正则表达式匹配public static int getLength(String value) { int valueLength = 0; String chinese = "[\u0391-\uFFE5]"; /* 获取字段值的长度,如果含中文字符,则每个中文字符长度为3,否则为1 */ for (int i = 0; i < value.length(); i++) { /* 获取一个字符 */

2021-11-11 19:32:06 1772

原创 文件压缩成zip包

mybatis踩坑:There is no setter for property named ‘resId’ in class ‘XXX’@TOC1.检查一下实体类VO字段名是否有多余空格2.检查一下实体类VO字段名是否正确property是VO的字段名,column是数据库的字段名<resultMap type="XXX" id="XXX"> <result property="resId" column="resid"/></resultMap>3.

2021-11-11 14:49:46 1141

原创 Leetcode695——岛屿的最大面积详解

题目一描述终端产品在进行一项噪音监测实验。若将空实验室平面图视作一个N*M的二维矩阵(左上角为[0,0])。工作人员在实验室内设置了若干噪音源,并以[噪音源所在行,噪音源所在列,噪音值]的形式记录于二维数组noise中。噪音沿相邻8个方向传播,在传播过程中,噪音值(单位为分贝)逐级递减1分贝,直至分贝削弱至1(即噪音源覆盖区域边缘噪音分贝为1);若同一格被多个噪音源的噪音覆盖,检测结果不叠加,仅保留较大的噪音值(噪音源所在格也可能被其他噪音源的噪声传播所覆盖)。在所有噪音源开启且持续传播情况稳定后,请监测

2020-08-31 23:34:19 441

原创 Leetcode358——K距离间隔重排字符串

题目描述给你一个非空的字符串 s 和一个整数 k,你要将这个字符串中的字母进行重新排列,使得重排后的字符串中相同字母的位置间隔距离至少为 k。所有输入的字符串都由小写字母组成,如果找不到距离至少为 k 的重排结果,请返回一个空字符串 “”。示例 1:输入: s = “aabbcc”, k = 3输出: “abcabc”解释: 相同的字母在新的字符串中间隔至少 3 个单位距离。示例 2:输入: s = “aaabc”, k = 3输出: “”解释: 没有办法找到可能的重排结果。示

2020-08-23 23:45:00 6334

原创 Leetcode752——打开转盘锁详细题解

题目描述你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字: ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’ 。每个拨轮可以自由旋转:例如把 ‘9’ 变为  ‘0’,‘0’ 变为 ‘9’ 。每次旋转都只能旋转一个拨轮的一位数字。锁的初始数字为 ‘0000’ ,一个代表四个拨轮的数字的字符串。列表 deadends 包含了一组死亡数字,一旦拨轮的数字和列表里的任何一个元素相同,这个锁将会被永久锁定,无法再被旋转。字符串 target 代

2020-08-21 01:06:57 422

原创 Leetcode206—反转链表详解(三种方式)

题目描述定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL解题思路方法1:暴力法方法2:双指针法方法3:递归法暴力法参考代码/** * 暴力法 * * 申请一个动态扩容的数组或者容器,比如 ArrayList 这样的。 * 然后不断遍历链表,将链表中的元素添加到这个容

2020-08-16 21:25:48 308

原创 Leetcode875—爱吃香蕉的珂珂题目详解

题目描述珂珂喜欢吃香蕉。这里有 N 堆香蕉,第 i 堆中有 piles[i] 根香蕉。警卫已经离开了,将在 H 小时后回来。珂珂可以决定她吃香蕉的速度 K (单位:根/小时)。每个小时,她将会选择一堆香蕉,从中吃掉 K 根。如果这堆香蕉少于 K 根,她将吃掉这堆的所有香蕉,然后这一小时内不会再吃更多的香蕉。珂珂喜欢慢慢吃,但仍然想在警卫回来前吃掉所有的香蕉。返回她可以在 H 小时内吃掉所有香蕉的最小速度 K(K 为整数)

2020-08-16 18:30:40 1740 1

原创 leetCode杀死进程题解

题目描述给 n 个进程,每个进程都有一个独一无二的 PID (进程编号)和它的 PPID (父进程编号)。每一个进程只有一个父进程,但是每个进程可能会有一个或者多个孩子进程。它们形成的关系就像一个树状结构。只有一个进程的 PPID 是 0 ,意味着这个进程没有父进程。所有的 PID 都会是唯一的正整数。我们用两个序列来表示这些进程,第一个序列包含所有进程的 PID ,第二个序列包含所有进程对应的 PPID。现在给定这两个序列和一个 PID 表示你要杀死的进程,函数返回一个 PID 序列,表示因

2020-08-16 17:50:54 2696

原创 Leetcode51-N皇后详细题解简单易懂

题目描述n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。上图为 8 皇后问题的一种解法。给定一个整数 n,返回所有不同的 n 皇后问题的解决方案。每一种解法包含一个明确的 n 皇后问题的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。示例:输入: 4输出: [ [".Q..", // 解法 1 "...Q",...

2020-03-25 00:03:12 395

原创 Leetcode131-分割回文串详细题解(递归+回溯 + 动态规划)

题目描述给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。返回 s 所有可能的分割方案。示例:输入: "aab"输出:[ ["aa","b"], ["a","a","b"]]解题思路求所有答案,首先排除动态规划,应该是DFS(深度优先搜索)遇到要求所有组合、可能、排列等解集的题目,一般都是DFS + backtracking(回溯)回溯法思考的步骤:...

2020-03-15 18:57:33 945

原创 阿里云SSH远程连接登录实例失败,超时: 10 秒,请检查网络是否可达或者白名单设置的解决办法

现象登录名称: root@XX.XX.XX.XX:22实例id: i-bp1gu0zjsunjrzw3ih1h实例名称: rory登录实例失败,原因: 连接实例 i-bp1gu0zjsunjrzw3ih1h (XX.XX.XX.XX:22) 超时: 10 秒,请检查网络是否可达或者白名单设置通过公网IP或者EIP访问实例需要在实例安全组白名单中增加Workbench的服务器公网白名单:...

2020-03-13 21:22:52 9192 3

原创 Leetcode377-组合总和 Ⅳ详细题解(动态规划)

题目描述给定一个由正整数组成且不存在重复数字的数组,找出和为给定目标正整数的组合的个数。示例:nums = [1, 2, 3]target = 4所有可能的组合为:(1, 1, 1, 1)(1, 1, 2)(1, 2, 1)(1, 3)(2, 1, 1)(2, 2)(3, 1)请注意,顺序不同的序列被视作不同的组合。因此输出为 7。进阶:如果给定的数组中含有负数...

2020-03-09 20:56:31 850

原创 Leetcode402-移掉K位数字题解(贪心算法)

题目给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小。注意:num 的长度小于 10002 且 ≥ k。num 不会包含任何前导零。示例 1 :输入: num = "1432219", k = 3输出: "1219"解释: 移除掉三个数字 4, 3, 和 2 形成一个新的最小的数字 1219。示例 2 :输入: num = "10200...

2020-03-07 21:41:58 602

原创 LeetCode948-令牌放置题解(贪心算法)

题目描述你的初始能量为P,初始分数为0,只有一包令牌。令牌的值为 token[i],每个令牌最多只能使用一次,可能的两种使用方法如下:如果你至少有 token[i] 点能量,可以将令牌置为正面朝上,失去 token[i] 点能量,并得到 1 分。如果我们至少有 1 分,可以将令牌置为反面朝上,获得 token[i] 点能量,并失去 1 分。在使用任意数量的令牌后,返回我们可以得到的最...

2020-03-05 00:47:13 352

原创 SpringCloud入门实战全系列(超详细)

Spring Cloud学习笔记项目版本使用IDEA完成,我是用的2019.3最新版,任何一个版本都可以spring cloud版本:Dalston.SR1spring boot版本:1.5.19.RELEASE项目模块说明SpringCloudLearning├── lingluocloud-api -- 构建公共子模块 + Hystrix服务降级├── lingluoclo...

2020-03-03 23:11:10 455 1

原创 SpringCloud系列9:分布式配置中心实战

1、概述分布式系统面临问题,配置问题集中式的、动态的配置管理必不可少Spring colud Config为微服务架构中心的微服务提供集中式的外部配置支持,配置服务器为各个不同的微服务应用提供一个中心化的外部配置Spring colud Config分为服务端和客户端两部分服务端也成为分布式配置中心,他是一个独立的微服务应用,用来连接配置服务器并未客户端提供获取配置等访问接口...

2020-03-03 00:14:23 177

原创 SpringCloud系列8:一文搞定Zuul路由网关及源码解析

文章目录1、概述2、路由基本配置3、测试4、路由访问映射规则代理名称替换真实的名称五、Filter工作原理Zuul中的FilterFilter TypesZuul请求生命周期自定义一个FilterFilter的启用与禁用六、Zuul部分源码分析七、Zuul的容错与回退八、高可用1、概述服务网关是微服务架构中一个不可或缺的部分。通过服务网关统一向外系统提供REST API的过程中,除了具备服务路...

2020-02-28 01:07:40 737

原创 SpringCloud系列7:安检员豪猪哥——Hystrix服务熔断、降级及监控

文章目录1、概述分布式面临的问题Hystrix介绍2、服务熔断1、新建模块 lingluocloud-provider-dept-hystrix-80013、服务降级1、修改lingluocloud-api模块4、HystrixDashboard1、概述2、构建步骤填写监控1、概述分布式面临的问题复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免地失败。服务...

2020-02-26 23:49:40 1723

原创 IDEA导入多module的Maven项目无法识别module

maven build成功,但是所有的注解一片红网上的方法都试了一遍都不行,后来仔细观察发现module都是灰色的,没有识别解决方法:点击IDEA右侧 Maven +号选择module对应的pom.xml文件OK然后就可以正常启动项目了。...

2020-02-20 22:55:38 1316 1

原创 SpringCloud系列5:使用Ribbon实现负载均衡及自定义Rule源码解析

文章目录1、概述Ribbon是什么负载均衡能做什么官网资料2、Ribbon初步配置修改consumer-80的配置3、Ribbon负载均衡4、Ribbon采用的负载均衡算法配置负载均衡算法5、Ribbon自定义简单自定义自定义规则深度解析项目结构图1、概述Ribbon是什么定义Ribbon是Netflix发布的开源项目,是基于Netflix ribbon实现的一套 客户端、负载均衡的工...

2020-02-18 01:13:42 824

原创 序列化有哪几种方式?static和transient有什么区别?它们可以被序列化吗?

又是一个令人懵逼的问题,赶紧来看一下吧文章目录什么是序列化和反序列化如何进行序列化类实现序列化接口Serializable序列化/反序列化什么是 transient?静态变量能被序列化吗?static和transient的区别transient 真不能被序列化吗?类实现序列化接口Externalizable序列化/反序列化transient 关键字总结实现序列化为什么必须要 serialVers...

2020-02-16 01:16:21 908

原创 面试题:使用 final 关键字修饰的变量是可变的吗?

文章目录final修饰基本类型final修饰Stringfinal修饰map/list/set值不可变和引用不可变延伸问题:String在设计的时候为什么是不可变的?字符串常量池的存在缓存hashcode保证其他对象的使用安全性final修饰基本类型可以发现,当我们想改变int类型的值时,编译器报错了。所以final修饰基本类型的变量是不可变的。final修饰String一样是不可变的。...

2020-02-14 23:13:22 1624

原创 拼多多面试题:new一个对象的时候发生了什么

new一个对象的时候发生了什么

2020-01-30 23:19:50 354

原创 Future的妙用——Java并发异步编程

一.引言先来看一些APP的获取数据,诸如你打开我的淘宝时,多达10条的用户行为数据,比如:收藏数,关注店铺,足迹,红包卡券,待付款,待发货,待收货,评价,退款/售后,真的是多~平时要10+接口的去获取数据(因为当你10+个查询写一起,那估计到半分钟才能响应了),一个页面上N多接口,真是累死前端的宝宝了,今天我们也可以一个接口将这些数据返回~ 还贼TM快,解决串行编程,阻塞编程带来的苦恼~二...

2020-01-29 00:58:37 240

原创 阿里云服务器购买到CentOS7.3部署Springboot项目详细整理(jdk1.8+mysql5.6)

一.购买云服务器具体就不详细描述了,购买后查看你的实例然后修改密码,重启实例。二.使用SSH工具登录服务器我这边是用的putty。另外需要一个FTP工具,可以在本地和linux互传文件,这里我用的WINSCP。三.安装JDKJDK下载地址下载下来通过FTP上传到/usr/local,解压tar -zxvf 你的jdk压缩包名然后删除压缩包。增加环境变量vi /et...

2020-01-13 16:17:25 326

原创 牛客机试常用语法整理

1.忽略大小写,比较两个字符串是否相同str2.equalsIgnoreCase(str3)2.进制转换System.out.println(Integer.toBinaryString(arg0));//十进制转换为二进制System.out.println(Integer.toOctalString(arg0));//十进制转换为八进制System.out.println(Integer...

2019-12-16 23:25:59 253

原创 牛客机试题

字符串常用语句1.计算字符个数2.计算字符串最后一个单词的长度3. 明明的随机数4.字符串分隔5. 进制转换6. 质数因子7. 取近似值8. 合并表记录9. 提取不重复的整数10. 字符个数统计11.数字颠倒/字符串反转12.句子逆序13.字符串的最长路径查找14.求int型正整数在内存中存储时1的个数15. 坐标移动16. 识别有效的IP地址和掩码并进行分类统计17. 简单错误记录18. 密码验...

2019-12-14 21:46:18 5841 2

原创 Java枚举类的使用

简单用法定义常量public enum QuotaAttribute { QuotaCPU, QuotaMemory}获取类名.常量如:QuotaAttribute .QuotaCPU多个枚举类需要将其放在一个接口里,每个枚举类实现这个接口/** * 获取队列状态的接口 */public interface QueueStatus { enum Q...

2019-12-10 11:56:35 150

原创 Guava缓存类LoadingCache的使用

定义缓存/** * 缓存 * K:Pair<String, String> 集群名称,逻辑队列 * V:String 物理队列 */ public LoadingCache<Pair<String, String>, String> clusterPhysicalQueueCache = CacheBuilder...

2019-12-10 11:14:30 684

原创 Springboot 被@Component注解的类调用@Autowired注解的类的元素报空指针异常

Springboot 被@Component注解的类调用@Autowired注解的类的元素报空指针异常解决: 加入@PostConstruct注解,在init()方法里完成初始化@Autowiredprivate AppProperty appProperty;private int initialCapacity;private int maximumSize;private in...

2019-12-10 10:44:53 7347

原创 Java数据结构与算法——LRU算法的应用

一.概念LRU(last recently use,最近最少使用)算法是一种内存管理的算法。它的基本思想是:最近使用的页面数据会在未来一段时期内仍然被使用,已经很久没有使用的页面很有可能在未来较长的一段时间内仍然不会被使用。利用它可以筛选热点数据,如筛选活跃用户。二.LRU的实现:利用双向链表实现2.1 构造链表节点每个节点有键值,并有前后节点。 /** * 构造一个节点 * ...

2019-11-15 00:06:33 235

原创 Java数据结构与算法——快速排序

一.快速排序介绍快速排序的思想:在每一轮挑选一个基准元素,并让比它大的元素移动到数列一边,比它小的元素移动到数列的另一边,从而把数列拆解成两个部分。这种思路叫做分治法。时间复杂度:假设元素是n,平均情况下需要logn轮,因此快速排序总体的时间复杂度是O(nlogn)。基准元素(pivot)的选择:随机选择一个元素作为基准元素。二.算法图解三.递归法实现快速排序package data...

2019-11-02 23:00:22 146

原创 Java数据结构和算法——冒泡排序及优化

冒泡排序的思想:把相邻的元素两两比较,当左边的元素大于右边的相邻元素时,交换它们的位置(大的元素向上冒泡)。小于或等于时位置不变。一.第一版代码package data.structure;import java.util.Arrays;public class MlnkBubbleSort { public static void sort(int array[]){ for...

2019-11-02 19:27:03 174

原创 Java数据结构和算法——队列

队列是一种线性结构。队列的元素只能先进先出。就像流水线一样。队列的出口端叫队头(front),入口端叫队尾(rear)。下面用数组实现一个循环队列,为了操作方便,将队尾位置规定为最后一个入队元素的下一个位置。所以一个长度为n的队列,可以装n-1个元素。直到(队尾下标+1)%数组长度=队头下标时,标志队列已满。package data.structure;public class Ml...

2019-11-02 17:40:36 102

luckymoney.zip

Springboot入门级项目,包含新建项目,配置文件,数据库操作,事务操作

2019-10-11

空空如也

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

TA关注的人

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