自定义博客皮肤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)
  • 收藏
  • 关注

原创 没有营业执照,也能申请微信支付?!这是一篇蓝兔支付对接入门教程

目前支付宝、微信的网上支付都需要营业执照,个人无法直接签约,给想学习和体验支付功能的开发者造成了阻碍,但是网上也有第三方支付申请渠道,可以实现微信支付对接。本文就是介绍如何实现一个蓝兔支付平台的个人商户签约,希望对大家能有帮助!🤔

2024-04-08 12:08:56 3691

原创 Jmeter实战——编写博客标签模块增删改查自动化脚本和压测

本文用Jmeter测试工具进行编写博客标签模块增删改查自动化脚本和压测测试。

2024-04-04 16:59:50 1860

原创 Java+Selenium+Junit5对个人博客进行自动化测试(包含代码和视频)

本篇文章将记录作者和带领读者,使用Java+Selenium+Junit5测试框架,对个人博客系统进行自动化测试。作者的个人博客系统分为前台系统和后台系统,这次测试主要测试前台的注册、首页、详情页、个人中心界面,后台的登录和标签管理界面。

2024-04-03 23:03:25 1551

原创 【算法通关村】解析堆在查找和排序的应用

构造只有k个的小根堆,堆满了之后,并不是所有新来的元素都可以入堆,只有大于根元素的才可以插入到堆中,否则就直接抛弃。小顶堆出堆的序列是升序。大顶堆出堆的序列是降序。

2023-10-18 23:57:56 117

原创 【算法通关村】原来这就是堆

堆价值就在于大顶堆的根节点是整个树最大的那个,增加时会根据根的大小来决定要不要加,而删除操作只删除根元素。这个特征可以在很多场景下有奇妙的应用,后面的算法题全都基于这一点。堆的效率高。因为堆元素的数量是有限制的,一般不用将所有的元素都放到堆里。后面题目中可以看到,在序列中找K大,则堆的大小就是K。如果K个链表合并,那么堆就是K。口诀:查找:找大用小,大的进;找小用大,小的进。排序:升序用小,降序用大。查找的方法就是:找 k 大, 则用小顶堆,后序的数据只有比根元素更大时才允许进入堆。

2023-10-18 23:55:17 71

原创 【算法通关村】数组加法问题解析

/ if(add!=0){ 数组[0] + 1000 结果应该是[1,0,0,0] 而不是[1000,0]进位有的好说,有的[9,9,9]不好说了。从后向前加的时候,到了A[0]的位置计算为0需要再次进位,但是数组却不能保存了,咋办。因此只用申请一个空间比A[]大1个的数组B[],然后将B[0]设置为1就OK。if (sum >= 10) { //妙,这个进位。二进制数字是字符串形式,不可以转成int型,可能溢出。注意while条件,三个,不要越界,处理进位。+1,无非两种情况,不进位返回,进位。

2023-10-18 23:48:03 106

原创 【算法通关村】数字统计问题处理模板

无论是乘以-100还是-1,对ans的贡献都是加一个负号,所以我们看负数有几个就OK。找0的个数 == 找2*5的对数 == 找5因子的个数(2更多,所以找5)别忘了还有25,它可以拆成5*5。将每个数累乘,可能会溢出。

2023-10-18 23:46:05 103

原创 【算法通关村】字符串反转问题解析

' '){ //确保不重复添加连续的空格字符。方式三:官方题解,把每一步都分开写的。去掉开头结尾空格,翻转整个字符串,翻转每个单词,变成正确的次序。//维护一个指针j从后往前遍历字符串,当需要字母时就使用它。方式二:用双指针找到各个单词,然后存入列表,然后倒序输出。//有一种倒序输出的节奏,前提是满足i是字母。方式四:倒序遍历,倒序添加,双指针思想。方式一:调api,面试不能用!//用i和j,对撞型双指针。方法二:栈,反序输出字符串。

2023-10-18 23:38:56 89

原创 【算法通关村】不简单的字符串转换问题

【代码】【算法通关村】不简单的字符串转换问题。

2023-10-18 23:36:17 29

原创 【算法通关村】位移的妙用

这种方法在JDK,Dubbo等源码中都能见到,特别是涉及协议解析的场景,几乎都少不了位操作。方式一:遍历每一位,判断是不是1,统计1出现的个数。用&和左移或右移判断。//`要加临时变量记录下x的值。可以将最后一个1变成0,统计1的个数。均分均分均分,翻转翻转翻转,合并合并合并。对于递归的最底层,我们需要交换所有奇偶位。for循环嵌套while循环的经典错误。x每次被干成0,又+1循环,又干成0。n&1即取出n二进制的最后一位。比特数即二进制中1的个数。自己写的犯了个大错误!

2023-10-18 23:22:24 38

原创 【算法通关村】算法通关村——位运算

为什么会有反码和补码?人觉得原码挺好,根据符合位判断符合,根据真值计算加减。但是计算机,只会加法,1-1==1+(-1)=0,这样设计简单。-0是什么?好奇怪,0没有符号,但是有两种表示方式,00000000,10000000,好浪费啊。于是补码来了完美!除此之外,这样0用00000000表示,而1000000可以表示-128这样使用补码表示的范围为[-128,127]。32位int类型,可以表示范围是[-2^{31} ,2^{31}]。

2023-10-18 23:18:02 52

原创 【算法通关村】快速排序应用

【代码】【算法通关村】快速排序应用。

2023-10-12 23:11:21 81

原创 【算法通关村】快速排序模板

【代码】【算法通关村】快速排序模板。

2023-10-12 23:09:01 34

原创 【算法通关村】二分查找在找缺失数字的应用

对于有序的也是可以采用二分查找,这里的关键点是在缺失的数字之前,必然有nums[i] = i,在缺失的数字之后,必然有nums[i]!因此,只需要二分找出第一个nums[i]!= i,此时下标i就是答案了。如果数组中没有找到次下标,那么缺失的就是n。

2023-10-12 23:06:49 47

原创 【算法通关村】透彻理解二分查找

把复杂的问题分成两个或更多相同的子问题。直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。错误的,>>的优先级低于 +-//假如low和high很大,low+high可能会溢出。//除的效率非常低,一般用移位来代替。找到了目标值,左移,直到找到左侧第一个。找到0了,不能左移,直接返回mid。如果要重复找左侧第一个。

2023-10-12 23:04:16 75

原创 【算法通关村】轻松搞定二叉树最大深度问题

【代码】【算法通关村】轻松搞定二叉树最大深度问题。

2023-10-12 22:57:09 105

原创 【算法通关村】轻松搞定二叉树双指针问题

if(t1.val!= t2.val){ //一定要放第三个,保证不为空。递归判断两个子树的内侧节点和外侧节点是否相等。先判断根节点是否相同,再判断左右子节点。一个遍历顺序是左右中,一个是右左中。//都为空,也是相同。两棵树同时进行前序遍历。不空,不空=》值相加。

2023-10-12 22:53:49 112

原创 【算法通关村】二叉树的遍历

return;//第二个参数类型是Listreturn ret;

2023-10-12 22:50:28 42

原创 【算法通关村】递归

只有列举清楚了才可能将终止条件写完整,所以在面试的时候千万不要上来就写,而应该先和面试官讨论你的设计方案,不要害怕与面试官讨论!假如有明显的缺陷他甚至会提醒你的,所以这也是借力打力的一个技巧。启示我们,先考虑清楚什么情况下终止,而且相关代码要写在靠前位置,之后再考虑递归的逻辑,遮阳降低编写的难度。先猜测递归关系,不需要证明,用几个较小的值验一下,再用几个较大的值验一下。不一定是触底才开始反弹,而是达到某种要求就停止。先分情况写出来,再看能否精简优化,不要步子迈太大。在执行递归之前,一定会有一个终止条件。

2023-10-12 22:49:46 24

原创 【算法通关村】树的层序遍历—原来如此简单

/List不能被实例化,它是接口,不是class。//List不能被实例化,它是接口,不是class。//获取当前队列的长度,即当前这一层的元素个数。//加入的是树节点的值。使用的内存通常更少,因为它不需要为每个元素存储两个引用(前一个和后一个元素的引用)。//加入的是树节点的值。好,尤其是在大部分情况下,因为它是基于数组实现的,随机访问元素的速度更快。在遍历完一层节点之后,将存储该层节点值的列表添加到结果列表的头部。

2023-09-17 12:30:08 112 1

原创 【算法通关村】栈和队列互相实现问题解析

队列1负责存队列元素,队列2负责辅助入栈。出栈都是队列1负责。入栈时,先入队2,再把1的元素入队2,然后交换1和2。outStack.isEmpty()){ 错误的,加!一个输出栈,负责pop和peek。一个输入栈,负责push。输出,先将输入栈的元素压入输出栈,再输出。Queue操作是,offer,poll。

2023-09-17 01:00:45 63 1

原创 【算法通关村】链表实现队列问题解析

【代码】【算法通关村】链表实现队列问题解析。

2023-09-17 00:58:12 98 1

原创 【算法通关村】如何使用中序和后序来恢复一颗二叉树

在解决如何使用中序和后序来恢复一颗二叉树之前,先想明白如何使用中序和前序来恢复一颗二叉树。

2023-09-17 00:51:06 157 1

原创 【算法通关村】第四关栈白银挑战笔记

/妙,灵活处理第一个push。//妙,用不着max()了。对于popMax(),xStack出栈存入辅助辅助栈,直到找到最大值。因此我们可以使用一个辅助栈,与元素栈同步插入与删除,用于存储与每个元素对应的最小值。

2023-09-04 23:58:09 85 1

原创 【算法通关村】第四关栈青铜挑战笔记

采用顺序表实现的的栈,内部以数组为基础,实现对元素的存取操作。在应用中还要注意每次入栈之前先判断栈的容量是否够用,如果不够用,可以进行扩容。top有得地方指向栈顶元素,有的地方指向栈顶再往上的一个空单位。面试的时候直接问面试官,top指向哪里。System.out.println("值不能为空");//直接取元素会报异常,需要先判断是否为空。top先将栈顶元素取出,然后再执行top--。peek():显示栈顶元素,但是不出栈。empty():判断栈是否为空。push():增加一个元素。

2023-09-04 23:56:12 95 1

原创 【算法通关村】第三关数组白银挑战笔记

left找等于val的,right找不等于val的。left遍历,等于val,就用right覆盖。不等于val就往后。//slow表示可以放入新元素的位置,索引为0的元素不用管。当nums[fast]==val时,fast移动,slow等待到不同时。没有说清楚是针对于字符串还是针对于字符串数组,所以这里分类进行讨论。当nums[fast]!=val时,fast和slow一块移动。快指针负责数组遍历,慢指针指向有效数组的最后一个位置。//循环起到了快指针的作用。快指针遍历,慢指针等待。lc163缺失的区间。

2023-09-03 22:24:38 118

原创 【算法通关村】第三关数组青铜挑战笔记

栈和队列又称为访问受限的线性表,插入和删除受到了限制,只能在固定的位置进行。而Hash比较特殊,其内部真正存储数据一般是数组,但是访问是通过映射来实现的。第一种:每次扩充增加固定数目的存储位置,如每次扩充增加10个元素位置,这种策略可称为线性增长。if(size>=a.length){ //size=a.length 下标从1开始。if(size>=a.length){ //size=a.length 下标从1开始。//index不可能为size。if(nums[i]>nums[i+1]) //升序。

2023-09-03 22:22:50 66

原创 【算法通关村】第二关链表白银青铜挑战笔记

/ 第 2 步:从 pre 再走 right - left + 1 步,来到 right 节点。// 第 1 步:从虚拟头节点走 left - 1 步,来到 left 节点的前一个节点。//反转,头插法倒着来。//保存next位置。// 因为头节点有可能发生变化,使用虚拟头节点可以避免复杂的分类讨论。//移动到left-1的位置。// 第 4 步:同第 206 题,反转链表的子区间。// 第 3 步:切断出一个子链表(截取链表)// 第 5 步:接回到原来的链表中。// 注意:切断链接。

2023-09-02 10:10:42 55

原创 【算法通关村】第二关链表青铜挑战笔记

/先保存后一个结点。头插法,将链表一个一个连到虚拟头结点后面。

2023-09-02 10:05:58 151

原创 【算法通关村】第一关链表白银挑战笔记

没有思路怎么办?常用的数据结构有数组、链表、队、栈、Hash、集合、树、堆。常用的算法思想有查找、排序、双指针、递归、迭代、分治、贪心、回溯和动态规划等等。

2023-08-31 21:04:34 206

原创 【算法通关村】第一关链表青铜挑战笔记

时间复杂度是,而不是实际时间。时间复杂度针对来看的。凡是处理时间复杂度,一定要注意一点:那就是之间的关系。

2023-08-29 20:30:21 350 1

原创 学习基数排序(Radix Sort)传送车

一文教你怎样学会基数排序。小白我的学习过程。

2023-08-15 01:00:30 44

空空如也

空空如也

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

TA关注的人

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