自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Git教程

Git是一种分布式版本控制系统,其工作原理基于分布式的思想。所谓分布式,是指在Git中,每个参与项目的开发者都拥有完整的项目副本,而不是依赖单一的中央服务器。

2024-07-16 17:23:35 242

原创 采用分布式限流解决接口限流的实现方案

为防止用户刷接口,给服务器造成不必要的压力,对客户端进行请求限制,对每个用户的IP进行了限制。接口限流的方式有多种。这里介绍分布式限流:自定义注解+拦截器+Redis实现限流 (单体和分布式均适用,全局限流),确保一定时间内,每个用户的请求次数收到限制。

2023-11-17 22:05:53 243

原创 docker安装Redis、MySQL、部署项目

我们在运行一个容器之后,一般容器内部是会有运行的进程的,否则容器会自动退出。/bin/bash: /bin/bash的作用是表示载入容器后运行bash ,docker中必须要保持一个进程的运行,要不然整个容器启动后就会马上kill itself,这个/bin/bash就表示启动容器后启动bash。这样,一个在后台运行的,利用tomcat:9.0镜像创建的,名称为tomcat9-demo01的容器就启动了,这时可以使用logs命令查看日志显示,这个命令类似tail -f的作用。

2023-09-15 21:06:01 474

原创 Spring security+JWT+Redis实现验证,授权

返回数据库中查询到的userDetails自定义的用户详细信息类,包含了用户的额外信息,如ID、头像等.扩展UserDetails类型,使得可以向JWT中存入用户ID;UserDetails就是认证结果中的当事人.需要继承User或实现UserDetails@Getter。

2023-08-10 21:03:42 740

原创 十大排序算法总结

将相邻元素两两之间相互比较,当一个元素大于右侧相邻元素时,交换它们的位置,小于或等于时位置不变。最右边为有序区,刚开始为空,每进行一轮,就选出一个最大的元素放在右边有序区,第二轮,倒数第二大的,以此类推。有序区的元素不再参与到后面的比较。当有n个元素时,总共需要比较n-1轮,每一轮比较n-1次(第一次比较,所有元素都要比较,为n-1,第二次,有序区已经有一个元素,剩余n-1个元素,两两之间比较n-2次…)。冒泡排序也是稳定排序,即值相等的元素并不会打乱原来的顺序。

2023-07-27 22:16:59 244 1

原创 pagehelper 插件来实现分页显示

自定义PageData类可以自由地添加或删除分页相关信息,比如添加总页数、当前页码、每页显示条数等信息。这样可以更加灵活地处理分页数据,满足不同场景的需求,使分页数据的处理更加灵活、易于维护和易于传递,也使得service层不依赖导入的pageInfo类,也可实现分页。1.定义PageData类:(使用@Accessors(chain = true)注解后,Lombok会自动生成链式调用方式)@Data​/*** 每页记录数*//*** 记录总数*//*** 当前页码*/

2023-07-11 09:26:10 869 1

原创 寻找和为定值的两个数

如果数组是无序的,先排序(N log N),然后用两个指针i,j,各自指向数组的首尾两端,令i=0,j=n-1,然后i++,j—,逐次判断a[i]+a[j]?2.进一步优化,使用二分查找,看sum-a[i]是否在该数组中,时间复杂度为n*O(logn),(如果有序,直接二分O(N log N),如果无序,先排序后二分,复杂度同样为O(N log N + N log N)= O(N log N),空间复杂度总为O(1))。输入一个数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。

2023-04-09 17:36:36 132

原创 寻找最小的k个数

求第k小的数,该算法类主要逻辑在于类似于快排取出临界值p ,partition(int[] arr, int begin, int end),该方法返回临界值p,若k<p,那么最小的k个数一定在p的左边begin...p-1,若k>p,那么最小的k个数一定在p的右边p+..end.若相等,返回第k小的元素,arr[p-1];刚开始有序数组放入第一个元素也是有序的因此i从1开始,j指向i-1,该位置是有序数组的末尾位置,要跟有序数组里面所有元素比较插入到适当位置,因此j--,j+1指向新加入的元素。

2023-04-09 17:20:48 453

原创 求字符串中重复字符的长度以及字符串的压缩

1.重复字符的长度1.用递归算法写一个函数,求字符串最长连续字符的长度,比如aaaabbcc的长度为4,aabb的长度为2,ab 的长度为1。定义一个index作为元素比较的下标,进行相邻元素之间的比较,若 a[index] == a[index - 1],则count+1,if (count > maxlen) { maxlen = count;}(求最长还要拿maxlen与count进行比较),若不相等count=1;然后递归调用,当index == a.length时,终止递归,返回maxlen;

2023-04-02 16:06:58 284 1

原创 字符串的全排列

通过递归实现,定a求bc的排列以此类推,注意每次交换完成后要回复到原来的顺序,避免遗漏。若字符串中有相同字母,则要进行去重,去重的关键在于与它后面步重复的元素交换,判断交换的两元素是否相等,相等则不交换。字典序解决给定一种排列,求基于字典序的下一种排列。例如输入字符串abc,则输出由字符a、b、c 所能排列出来的所有字符串abc、acb、bac、bca、cab 和 cba。将字符串中的每个字符看成二叉树的一个节点,根节点为空,每个节点都会有两种选择:要和不要两种选择。

2023-04-02 15:34:02 385

原创 回文判断以及最长回文子串

给定一个字符串,判断是不是回文字符串及求它的最长回文子串的长度。

2023-04-02 15:13:26 216

原创 字符串包含

4.先把长字符串a中的所有字符都放入一个Hashtable里,然后轮询短字符串b,看短字符串b的每个字符是否都在Hashtable里,如果都存在,说明长字符串a包含短字符串b,否则,说明不包含。利用上面字母和素数的对应关系,对应第二个字符串中的字母,然后轮询,用每个字母对应的素数除前面得到的整数。如前所述,算法的时间复杂度为O(m+n)的最好的情况为O(n)(遍历短的字符串的第一个数,与长字符串素数的乘积相除,即出现余数,便可退出程序,返回false),n为长字串的长度,空间复杂度为O(1)。

2023-04-02 14:58:17 64

原创 旋转字符串

给定一个字符串,要求把字符串前面的若干个字符移动到字符串的尾部,如把字符串“abcdef”前面的2个字符’a’和’b’移动到字符串的尾部,使得原字符串变成字符串“cdefab”。请写一个函数完成此功能,要求对长度为n的字符串操作的时间复杂度为 O(n),空间复杂度为 O(1)。的截取方法:substring(n):取从开头n个字符外的所有字符(n-str.leng-1),substring(m,n):取m-n位置的字符(含头不含尾)。时间复杂度为O(n),空间复杂度为O(1),达到了题目的要求。

2023-04-02 14:29:21 72

空空如也

空空如也

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

TA关注的人

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