自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 day25

创建一个数组用来存储每个数组对应的字符串,index代表递归的深度,for循环前先用数组下标减去0即可得到对应数组的字符串。与组合类似,终止条件多了相加之和的判断。

2023-11-08 23:20:06 51 1

原创 day24

回溯问题可以抽象为一个n叉树,递归做嵌套循环,n相当于树的宽度,k相当于树的深度。

2023-11-08 23:15:21 48 1

原创 day21

双指针比较相邻两个节点的值是否相等,同时记录出现的频率和最大出现频率。中序遍历二叉搜索树,若count与macCount相等,向集合中插入当前节点的值,若count大于maxCount,清空集合,在向集合中插入当前的节点的值。利用二叉搜索树中序遍历后为一个递增的数组的特性,使用双指针比较当前节点和前一节点的值,找出最小的值即可。

2023-11-07 00:53:12 48

原创 day20

二叉搜索树中序遍历后为一个递增的数据,注意不能简单判断当前节点大于左节点、当前节点大于右节点。利用中序遍历,判断当前节点大于前一个节点。以root1为最终合并后的二叉树,前序遍历,root1节点为null返回root2节点,root2节点为null返回root1节点。遍历数组,找到数组中最大的元素及其下标,新建一个节点,val为当前数组范围最大元素。以数组最大元素下标为节点分割左右数组,递归遍历。利用二叉搜索树特性,若val大于root节点值则向右搜索,反之向左搜索。

2023-11-06 16:50:40 38

原创 day17

判断递归函数的参数root和返回结果int,确定递归的终止条件root == null,最后确定单次递归的逻辑。后序遍历,判断一个二叉树是否为高度平衡的二叉树即左子树和右子树的高度差不能大过一。注意什么是左叶子:节点的左孩子不为空,且节点左孩子的左孩子和右孩子都为空。用到回溯的思想,回溯和递归是一一对应的!

2023-10-30 17:21:54 24 1

原创 day13

使用单调队列,堆头元素为当前窗口内最大的元素,当遍历数组时比较当前元素与堆头元素的大小,若大,则移除队内元素,若小,先判断窗口内元素是否是窗口最大值,若不是则直接加入队列,若是则pop堆头元素再加入当前元素。使用小顶堆,小顶堆的大小设置为k,遍历数组,若当前元素大于堆头元素则弹出堆头元素,最后堆内元素即位结果。

2023-10-25 17:01:41 21 1

原创 day11

题目给定波兰表达式,不用判断不符合的情况。遍历字符串数组,判断当前节点是否为算符,不为算符将当前元素放入栈中,若为算符,对当前栈中元素pop两次,并计算,最后将计算结果放入栈中,最后结果即为值。遍历字符串s,如果栈为空或当前字符与栈顶元素不匹配,则将当前元素放入栈中,最后字符倒序相加转为字符串。题目说左括号必须以正确的顺序闭合,为简便操作,统一在栈中放入右括号。

2023-10-23 19:10:11 22

原创 day10

今天题目不难,主要熟悉了栈的api。

2023-10-23 18:55:45 16

原创 day08

遍历字符串s,每次步进2k,判断剩余字串是否小于k,若小于k,k等于剩余字符串数量。

2023-10-19 20:02:47 16

原创 day07

若nums[i]+nums[left]+nums[right] > 0 right--,若nums[i]+nums[left]+nums[right] < 0 left--。定义一个map,用来存储nums1和nums2相加的结果,相加之和做key,出现的次数做value。遍历nums3和nums4并相加,判断map中是否存在相加结果为0的key,若存在,取对应的value并相加。然后遍历字符串ransomNote,在对应的字符位做自减操作,最后遍历数组,若数组中出现负数返回false,否则返回true。

2023-10-18 18:57:58 36 1

原创 day06

使用两个hashset,第一个hashset用来存储nums1的所有元素,然后遍历nums2,同时判断nums2中的元素是否出现在第一个hashset,若出现,则说明当前元素时两个数组的交集,将其放入另一个hashset。新建一个hashmap,遍历数组,若map中不存在键为target-nums[i]的元素则将当前数组的值和下标放入map(数组的值做key的原因是简化操作)。字符串s和t都只包含小写字母,新建一个数组来存储s中每个字符出现的次数,然后遍历t,对应位置上的字符自减。

2023-10-17 17:39:51 16

原创 day03

使用双指针更改链表的指向。使用虚拟头节点统一操作。

2023-10-16 19:05:18 13 1

原创 代码随想录day02|977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II

双指针法,数组有序且没限制数组元素的大小,因此数组元素平方后最大元素一定在数组两侧。要求目标数组按照递增顺序排序,因此比较原数组最外侧的两个元素的大小,将计算后大的值倒序填充到目标数组同时下标向数组中间靠拢。窗口内代表的是满足条件的数组,当窗口内的值大于目标值需要减小窗口长度,起始位置向右移动;当窗口内的值小于目标值,需要增大窗口长度,结束位置向右移动。采用滑动窗口的思想,即不断的调节子区间的起始位置和结束位置,从而找到目标结果。滑动窗口用一次for遍历,遍历的索引是滑动窗口的结束位置!

2023-10-12 20:32:08 175

原创 代码随想录算法训练营第一天|704. 二分查找,27. 移除元素

为什么当target在右区间时left = middle + 1?无论区间是左闭右闭还是左闭右开,当target在右区间时,nums[middle]一定不是target,都是左闭区间所以结束下标范围为middle + 1;左闭右闭且当target在左区间时,right = middle - 1,此时nums[middle]一定不是target,又因为是左闭右闭区间所以结束下标范围为middle - 1。左闭右闭时left == right 有意义,所以需要用

2023-10-11 19:57:34 198

原创 两台linux服务器实现文件同步(rsync+inotify)

两台linux服务器实现文件同步(基于rsync+inotify)

2022-10-19 17:05:36 1320 1

原创 Maven阿里云镜像无法下载aspose依赖

Maven阿里云镜像无法下载aspose依赖

2022-10-14 11:00:23 3528

空空如也

空空如也

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

TA关注的人

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