自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Redis Sentinel模式

首先来看为什么会存在哨兵模式?Redis哨兵主要是为了解决主从复制模式下单节点故障,需要手动选举主节点问题。而使用Redis Sentinel模式可以达到节点自动选举节点故障转移和节点配置更新,从而保证可靠性。

2024-04-20 10:20:31 784

原创 Java实现分片上传与断点续传

通过Java实现分片上传与断点续传

2024-04-20 10:12:26 882

原创 Ouath2和OSS区别及联系

开放授权(Open Authorization, Oauth)是一种用户授权第三方服务来控制访问另一个站点服务资源的协议。在整个授权过程中,第三方应用都无法触及到用户的密码就可以取得资源访问资源。目前Oauth 1.0版本基本因安全问题已基本不使用,后续介绍皆以Oauth 2.0版本为准。oauth2能解决的问题:在用户不给客户端提供账号密码情况下,让第三方应用获取用户数据和基本信息难题。Client 客户端:第三方应用程序,用户需要进行访问的平台。

2024-04-19 19:36:03 1035

原创 LeetCode 347.前K个高频元素

题目链接: 347.前K个高频元素① 求K个高频元素,首先统计素及对应出现次数,这里使用Map来统计。② 声明小顶堆,遍历Map。需要维护堆大小,如果堆元素数量>k,则将顶元素跳出。

2024-04-17 10:55:43 287

原创 Spring自定义注解+AOP实现接口防重复提交

有时因为网络问题导致用户多次提交表单,后端会出现重复脏数据,所以做表单防重复提交很有必要。目标:前端通过防抖, 后端通过Spring AOP + Redis实现防重幂等功能。接口幂等性跟并发请求是两个概念,接口幂等性是针对自身,而并发请求是代表不同人。目标:在指定窗口时间内,限制同一个用户对同一种业务提交相同数据。

2024-04-17 01:43:44 621

原创 JDK8 Lambda基本使用

stream是java8中新概念,是用来处理集合、数组查找,筛选和排序等操作。stream可以执行非常复杂的查询,过滤和映射数据等操作。不是数据结构,不能存储数据stream不会改变原数据,会将操作结果保存在另一个对象中stream是惰性计算,意思是说只有当前流执行了终止操作符后才会执行。

2024-04-13 20:05:43 1044

原创 Jackson序列化问题:Cannot deserialize instance of `java.util.ArrayList_java.lang.Object

导致后续Feign Decode解码器序列化失败了。由此可知,是JSON序列化出现问题了。:OpenFeign跨服务调用查询相关信息, 在返回List时发现出现序列化异常。**分析:**看到序列化失败,首先需要清楚数据返回结果以及接收参数DTO是怎样的!3.利用反射获取属性类型,分情况进行赋值。实体类分明定义的是list,却序列化成。通过swagger调用,返回结果如下。2.找到Jackson配置。

2024-04-13 17:25:56 884

原创 MybatisPlus使用多字段处理器List带来的问题及对应解决方案

多个字段使用Mybatis字段处理器带来的问题及对应解决方案

2024-04-13 17:16:12 1295

原创 SpringSecurity多认证体系实现

springsecurity已经为我们实现了账户密码登录认证逻辑,我们可仿照其原理来实现自定义认证这里以企业微信号登录为例,实现SpringSecurity多认证体系在多认证体系下,对不同登录方式需要用到不同的处理器去处理该请求,所以需要针对不同的请求来进行自定义过滤// 处理微信登录请求@Override});// 校验合法请求// 企业微信扫码后, 企业微信回调的code。

2024-04-13 17:13:38 586

原创 EasyPoi生成Excel,WPS能打开而Office打不开。

xls为office 03版本以下生成的扩展名, xlsx为07版本的扩展名,正常来说03版本的是无法打开xlsx文件的。因为office是使用utf-8编码的,打开gbk编码的文件会出现异常,而wps对此类进行了兼容处理。easypoi默认使用HSSF导出,所以在导出xlsx时,需将导出版本类型设置为。虽然假设1,2均成立,但导出的文件都需要经过修复才可正常打开,默认为gbk编码,需要设置为utf-8。2.默认导出模板文件,可通过easypoi的workbook导出或不对xlsx,xls文件进行打包。

2024-04-13 17:10:29 762

原创 EasyExcel + Validation实现bean校验

业务中可能存在多种导入需求,我们可以创建一个通用listener,就不用一个导入excel需求就创建一个独立的listener了。的invoke方法来进行逐行读取的, 所以我们可自定义listener来重写Invoke方法,将bean校验逻辑放入即可。Easyexcel是通过。1.通用listener。2.Bean校验工具类。

2024-04-13 17:06:32 598

原创 LeetCode 155.最小栈

由题意可知,在不影响弹栈顺序的情况下,计算当前栈内最小值。所以我们可以引用多元组的方式在入栈的时候不断记录当前栈内的最小值即可。2.1)多元组的方式实现。2.2)链表方式实现。

2024-04-13 16:50:45 261

原创 LeetCode 739. 每日温度

首先声明一个新数组result, 并声明一个单调递增栈(这里找第一个比当前栈顶元素大的,所以使用递增栈)。这里可以使用双指针思路,代码较为简单这里不进行阐述。除了双指针外,还可以使用单调栈的思想。

2024-04-13 16:48:05 165

原创 LeetCode 84. 柱状图中最大的矩形

边缘两端也需要进行计算面积,可以声明一个新的数组,左右边界高度为0。遍历数组时,对于元素可分为如下三种情况进行讨论。找到比上一个元素高度低的索引位置,不断进行计算构成矩形的面积,取最大值。这里由于找的是第一个低的位置,所以这里使用单调递减栈(栈顶元素最大,栈底元素最小)。

2024-04-13 16:46:01 278

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

2)当前堆元素个数 = k,且当前元素 > 堆顶元素,则移除堆顶元素,再加入堆中。需要找到第K个最大的元素,这里我们可以使用大顶堆的思路,堆内只维护k个元素。1)当前堆元素个数 < k,且当前元素 > 堆顶元素,则直接进入堆中。3)遍历完数组,第K个最大元素就是大顶堆堆底元素。

2024-04-13 15:49:42 175

原创 LeetCode 1222.可以攻击国王的皇后

将国王位置的八个方向进行遍历,当遇到皇后时截断该线路。

2024-04-13 10:50:28 159

原创 LeetCode 74.搜索二维矩阵

因为每行是有序的,所以可以使用二分查找。而每列的数据也是有序的,所以这里我们也可以使用二分查找。这里我们可以使用两次二分查找解决该问题,先通过二分法查出target所在行, 再通过二分法查找target对应的行内位置。由题可知,整个数组从上至下,从左至右都是有序的。所以这里我们可以使用二分查找法。通过遍历每行,对行内数据进行二分查找。

2024-04-12 17:02:53 341

原创 LeetCode 33.搜索旋转排序数组

升序数组按照某个位置进行了旋转拆分成了两个升序数组。通过二分法不断找到中间位置的数,然后升序的区间快速切掉多余的部分。

2024-04-12 16:57:52 233

原创 LeetCode 153.寻找旋转排序数组的最小值

这里用二分法查找,需要始终将目标值(这里是最小值)套住,并不断收缩左边界或右边界。而右

2024-04-12 16:54:41 189

原创 LeetCode 51.N皇后

这里需要遍历的深度即是棋盘的行数,每层遍历的长度即是棋盘的列数。所以我们从行数开始遍历,进行放置皇后(需要满足垂直,斜对角不能存在皇后)如果不满足则进行回溯。N皇后问题是一道典型的回溯思想题,知题意,对于N*N的网格中找出满足条件的皇后布局。

2024-04-12 16:49:54 385

原创 LeetCode 77.子集 ||

子集问题是回溯的经典题型。题目要求结果集不能存在重复的子集,如果采用先把所有结果给收集起来,然后进行去重,该方法的时间复杂度较高。所以当前在dfs查找前进行剪枝。① 对每层分支集合遍历前,需要进行判断之前的分支是否已经走过。这里为了更好去除重复的分支,需要对原数组进行排序。②进行深度遍历时,需要记录已经使用过的数字。如果当前数字已经使用过,需要进行剪枝。

2024-04-12 16:14:31 152

原创 LeetCode 87.复原IP地址

这题是典型的回溯思路,可按DFS进行查找,且当前层从【startIndex, s.length】,下层的遍历区间【startIndex+1, s.length】,且深度最大为4。按题意,是想将一段字符串分为4段子串,且每段子串的区间为0~255。切割问题采用回溯思想,一般使用DFS查找。② 每段区间为0~255。

2024-04-12 15:36:09 150

原创 LeetCode 79.单词搜索

这其实就是一道图的DFS查找的问题,那么如何遍历图呢?其实图的遍历过程是二叉树DFS遍历的一个变种。startIndex = s.length代表已经搜索到了,可以返回true。依代码所示,二叉树的遍历过程有两点 :断言操作 ,每层遍历的分支集合。依据递归三要素:递归方法参数及返回值,递归终止条件,回溯搜索过程。遍历整个二维数组,对当前位置的四周开始进行递归。②网格的每个栅格存在4个分支:上下左右四个方向。①对于case断言,当前不能超过网格范围内。1.) 确认递归方法参数及返回值。2) 确认终止条件。

2024-04-12 15:32:20 331

原创 LeetCode 131.分割回文串

知题意,将字符串分割成若干个回文串。其实分割问题差不多就是组合问题,依然可以使用回溯思想。

2024-04-12 15:02:36 302

原创 LeetCode 17.电话号码的字母组合

① 这里需要得到所有可能结果,一般使用void。我们需要通过index来记录digits所在位置,当遍历完毕则需要添加到结果集中。② 循环的退出条件,既当前遍历path数组的大小等于字符串的长度时,代表已到达最大深度。面对组合问题,采用回溯思想使用DFS遍历。③ 每层的广度优先遍历,即对应数字键的字母。

2024-04-12 14:32:30 361

原创 LeetCode 216. 组合总和 III

② 每层的广度优先遍历区间为【1,9】,对于已经使用过的元素需要进行剪枝。① 终止条件下需要加入一个额外Condition:currSum=n。

2024-04-12 14:21:48 129

原创 LeetCode 77.组合

因为这里1~n内的数不能重复选取,这里使用start记录当前的数,每层的广度遍历为[start, n]。广度优先遍历区间为【start, n】,再进行下一层遍历前,需要将start+=1。下一层遍历结束后进行回溯start-=1。从n个数内,选择k个数出来,这是一个典型的组合问题。对于回溯递归可以使用递归三部曲。当前已经选择列表数=k时,进行退出。

2024-04-12 14:03:21 222

原创 LeetCode 39.组合总和

① 循环的退出条件,累加的数字等于targetNum则追加到结果集,如果大于targetNum则跳出当前层并进行回溯。这里注意一点点,数字可以无限制选取,所以每层的一个广度遍历是一致的,不需要过滤使用过的元素。当curr > target已经超过了目标值,则不符合条件,需要进行回溯;② 每层的循环遍历都是从【0, s.length-1】。当curr = target满足条件,添加至结果集中。组合和排列问题是经典的回溯题,依据递归三部曲。确定递归方法参数及返回值。

2024-04-12 12:41:11 233

原创 LeetCode 22.括号生成

① dfs退出条件,right括号数

2024-04-12 12:31:59 182

原创 LeetCode 47.全排列II

① 遵循递归公式,选择递归退出条件,path.size=nums.length。这里有重复元素,对于重复元素如何进行剪枝这点弄明白,这道题就迎刃而解了。这里使用一个used数组来记录使用过的元素,在当前层使用完后释放。② 对于每层的广度优先遍历需要过滤掉已经使用过的元素。① 相同层,出现了相同的元素,需要进行剪枝。② 不同层,出现了相同的元素,需要进行剪枝。

2024-04-12 12:18:13 364

原创 LeetCode 46.全排列

② 确定每层遍历的广度,这里需要记录之前遍历过的元素,只能从未使用过的元素开始。① 确定递归的终止条件, 即元素个数(也是值深度)为当前列表长度。这是一道典型的回溯排列问题。

2024-04-12 12:12:46 397

原创 Git笔记

## Git基本概念3个步骤png)]正常情况下,工作流就是3个步骤,对应上图的3个箭头:git add . (工作区->暂存区)git commit -m "comment" (暂存区->本地仓库)git push (本地仓库->远程仓库)4个区工作区(working Area)暂存区(Stage)本地仓库(Local Reposit...

2019-10-30 15:19:16 287

空空如也

空空如也

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

TA关注的人

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