自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LeetCode 94. 二叉树的中序遍历

先访问左子树的左子树,再访问左子树的根结点,最后再访问左子树的右子树。如何访问左子树的左子树呢?很简单,先访问左子树的左子树的左子树,再访问左子树的左子树的根结点,最后再访问左子树的左子树的右子树。grq:对于迭代代码,可以考虑一个局部情况,当root指向了最左下角的结点时,将其入栈,之后指向其左儿子(null),此时为空,那么将刚刚的左下角结点出栈,添加答案,之后指向右儿子(null),依然为空。grq:我们需要牢记的是每个被加入到栈中的都是根结点,最下层的叶子结点也是根结点(没有孩子结点的根结点)。

2024-09-14 10:54:33 436

原创 LeetCode 16. 最接近的三数之和

这道题和上一道思想类似,都是固定一个最左侧指针,然后使用双指针进行一个遍历。不同的是本题不需要去重,即找到一个最接近的解即可。初始化起始解的思想比较好,可以借鉴。

2024-09-14 10:53:09 577

原创 LeetCode 15. 三数之和

遍历到两个重复的值时,在第一次出现时已经将所有的情况枚举过了,第二次出现时就要将之前的情况pass掉。这道题使用伪三指针,实际上就是双指针想法,有一个指针动的比较少一些。因为要找的是值,而不是下标,所以要进行去重。另外,答案中要求不能用重复的元素,比如当。还有点疑惑,假设之前存在了一组解,下标为。,其中j接近k但远离i,那么当。时依然能够保证这组解被找到。

2024-09-13 09:58:56 544

原创 LeetCode 11. 盛最多水的容器

假设最优解的两个值为图中的两条竖线,我们的指针从左右两侧向中间移动,假设现在左边的指针先移动到了最优解的前面的竖线,现在要证明:如果左边指针先到达最优解的边界了的话,右边每次指向竖线的高度都严格小于左边指向的竖线。由此得到的结论是,假设左边先找到了最优解,那么右边的高度必然是严格小于左边界的。木桶原则是说一个水桶无论有多高,它盛水的高度取决于其中最低的那块木板。整个题目可以理解为:最好要早相遇,否则在晚相遇的基础上,每次都要找最好的。本题使用双指针的做法, 指针移动过程中会天然地造成木桶的“底”不断变小。

2024-09-13 09:57:49 1213

原创 LeetCode 3. 无重复字符的最长子串

当右框框进来了重复值时,左框就要右移,保证框内无重复字符。当每个字符都能求解到以其为右框的不重复子串时,遍历整个字符串就能求到整个字符串的最长不重复子串。,我们的目标是找一个对于j最长的i,使得在该区间内不包含重复字符。之后用哈希表来存储区间中每个字符出现的次数,当一个新的j’出现的次数大于2时,那么重复的一定是。之间是不包含重复字符的,这样就会有矛盾,由不包含重复字符的空间。这个字符了,就要从i开始在哈希表中递减,直到减到之前出现的。,此时i’是重复的,因此是矛盾的。往后移动了,那么对应的。

2024-09-12 16:31:59 763

原创 LeetCode 1. 两数之和

双指针算法思想很简单,但是在实现上会有一些问题,当我们对原数组进行排序后(双指针要求有序),找到答案后返回的是下标也是随着并不是原序列的下标。这就需要将值和下标成对存储,并且按照值进行排序。,那么当前遍历到的数即为b,通过查看从头到当前b的这段范围内是否有a,来看能不能找到两个数的和。有人相爱,有人夜里开车看海,有人leetcode第一题都做不出来。这道题主要有三种方法:暴力循环、字典映射、双指针。枚举整型数组中的每一个数,第二层循环。时输出下标即可,此时注意输出的是。有两个循环,因此时间复杂度是。

2024-09-12 16:30:48 612

原创 LeetCode 25. K 个一组翻转链表

与两两交换是对应的题目。依然是从dummy结点开始,首先要判断之后是否还有K个结点。如果不足,结束翻转。这里要分为三个部分进行处理,包含:K个结点的翻转、左边指向改变、右边被指向改变。K个结点的翻转:相当于是改K-1根线,因此循环K-1次。最终改完a会踩在翻转前第K个结点的位置,b就是下一组了。左边指向改变:原来是指向下一个结点的指针,要改为指向下一个K部分(此时该结点为本部分的尾端)。右边被指向改变:原来是被上一个结点指向,要改为被上一个K部分指向(此时该结点为本部分的头部)。

2024-09-10 15:24:22 625

原创 LeetCode 206. 反转链表

之后一步一步地将tail结点向前返回,但在返回的过程中不利用,只是传递最终答案。绿线的操作就是当head为正数第一个结点时的调用情况。grq:递归的做法记得要将当前调用的head的指向置null,否则会出现链表中出现环的情况。递归代码的一个首要任务是找到整个链表的尾结点(反转后的头结点)。迭代代码与之前的K个一组翻转链表相同。

2024-09-10 15:23:20 718

原创 Spring事务失效的原因

例如,在秒杀业务中,我们不仅要考虑多线程并发执行时对库存的考虑,还要考虑每个用户的请求是否由一个线程发出,当一个用户的请求由多个线程发出时,可能是脚本代刷的情况,这同样会导致业务出现异常。是一个非常重要的事情,因为如果锁的粒度太大,会导致每个线程进来都会锁住,所以我们需要去控制锁的粒度。比如在秒杀场景中,我们希望同一个用户的请求被串行化(一个用户不能同时发起多个秒杀请求),但允许不同用户同时进行秒杀。但是以上的方法仍有问题,因为我们调用的方法其实是this调用的,事务要想生效需要使用代理。

2024-09-10 15:12:51 858

原创 Java线程状态及生命周期

Java线程状态及生命周期

2024-09-10 12:54:22 1042

原创 LeetCode 61. 旋转链表

首先要获得整个链表也是后k个结点的尾结点。由于整个是n个结点,除掉后k个结点后还有n-k个结点,要修改指针首先要跳到倒数第k+1个结点(正数第n-k个结点),从第一个结点跳n-k-1次就可以到达。将每个结点向右移动k个位置,实际上就是将后k个结点连接到头部。这道题目是不需要dummy结点的。grq:关于链表结点的修改顺序:改前先用,用后就改。

2024-09-10 12:47:44 462

原创 阿里云OSS文件上传不配置环境变量使用显式AccessKey验证

中介绍文件上传时,推荐配置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。这里用简单的方法,直接在Demo.java中显式指定。首先去创建AccessKey。记住AccessKey ID和AccessKey Secret。之后修改你本地的目标位置和bucketname即可成功运行。

2024-07-06 16:49:08 501

原创 AcWing 727. 菱形——像拼图一样做题

这道题有需要不同的画法,上面只是笔者自己的理解,关于其他更优雅更简洁的方法请大家开动脑筋去尽情尝试吧!基于此我们可以先将这两条对角线画出来,是不是就成功了一半了呢?有了这两条相交的对角线,我们只需要处理左上角需要描的点即可,然后利用相交的对角线通过关于。另外我们可以知道正方形有两条相交的对角线,它将正方形分成了四个相等的部分。通过观察,可以看出不管给出的整数是多少,最终形成的图形一定是一由空格。轴,进行关于y轴的对称实现映射效果。轴的对称,映射到左下角/右下角。我们将采取拆解问题,通过四个部分的组合最终。

2024-03-19 19:13:58 895

原创 重新配置vue项目时出现的:连接已断开问题

在新机器上配置完node.js、vue-cli,配置了node_modules后,命令行运行。,但是没有效果,根据报错信息,原因是缺少locales文件夹。尝试在环境变量里添加C:\Windows\System32。,在该路径下创建文件夹,将其明明为locales即可。

2024-02-02 23:12:36 1472

原创 CMU15445 fall 2022/spring 2023 项目环境搭建+选择合适的版本

CMU15445是一门关于数据库管理系统(DBMS)的设计和实现的优秀课程。由数据库领域大佬Andy主讲,同时还有迟策大佬所设计和维护的BusTub,其名声在外之处更是有着极高质量的作业(HOMEWORKS)和项目(PROJECTS)。

2023-09-01 16:40:33 6178 2

原创 fatal: unable to access ‘https://github.com/xx‘: Could not resolve host: github.com解决方案——配置DNS服务器

但是,这些DNS服务器可能运行缓慢或未定期更新,这可能会导致在查询域名时解析为错误的IP地址。很遗憾的是,HTTPS的方式我还没有解决,这个以后如果解决了会再进行补充,如果大家有更好的方案,欢迎与我交流。在我机器中【1】处的信息为:eno1,【2】处的信息为inet后的地址xxx.xxx.xxx.xxx/24。可以复制上面的内容到你的文件中,只需修改两处内容,这两处内容该如何获取呢?我的服务器原始DNS设置如下,使用的是默认DNS服务器。各个安装程序的文件名可能不同。,但在你的系统中,可能会有所不同。

2023-09-01 09:27:01 4749

原创 ssh-scp 基本用法与免密登录

举例:本地当前目录下有test.txt文件,服务器已经配置好了别名为:student1,将本地test.txt上传到服务器的tom用户下,又tom已经配置好了student1别名。里的登录方式,用户名和IP\域名,这样一大长串不太方便。因此,我们来配置服务器别名,假设就叫student1。举个例子,假设我们的user是tom,hostname是123.45.67.890。现在有了别名登录方便多了,可每次登录都要输入密码还是不太好,接下来配置免密登录。之后再想登录该服务器的tom用户时,可以直接输入。

2023-08-31 10:26:12 1244

原创 AcWing 844. 走迷宫

数据结构

2023-04-09 17:38:03 436

原创 AcWing 843. n-皇后问题

数据结构

2023-03-26 15:19:59 289

原创 AcWing 842. 排列数字

数据结构

2023-03-23 15:14:09 99

原创 AcWing 841. 字符串哈希

数据结构

2023-02-17 10:25:21 763 1

原创 AcWing 840. 模拟散列表

数据结构

2023-02-09 17:14:35 250

原创 强化学习 —— DQN 代码遇到的问题总结

强化学习 DQN 算法代码出现的报错

2022-12-21 11:25:15 2756 2

原创 AcWing 839. 模拟堆 —— 对用数组实现映射的一点理解

数据结构

2022-10-23 11:28:40 554

原创 AcWing 838. 堆排序

数据结构

2022-10-21 21:20:56 453

原创 AcWing 837. 连通块中点的数量

数据结构

2022-10-20 18:02:49 335

原创 AcWing 836. 合并集合 —— 递推递归一起食用效果更佳哦~

数据结构

2022-10-19 22:09:18 241

原创 AcWing 143. 最大异或对 —— 神奇的二进制

数据结构

2022-10-16 19:39:01 525

原创 AcWing 835. Trie字符串统计

数据结构

2022-08-05 19:25:13 129

原创 AcWing 831. KMP字符串 —— next 数组究竟是什么?

数据结构 把 KMP 掰开了揉碎了!

2022-08-02 09:18:16 292

原创 AcWing 154. 滑动窗口(单调队列)

数据结构

2022-07-27 20:36:37 292

原创 AcWing 830. 单调栈

数据结构

2022-07-24 23:37:55 114

原创 AcWing 829. 模拟队列

数据结构

2022-07-21 11:49:53 65

原创 AcWing 828. 模拟栈

数据结构

2022-07-21 10:10:35 200

原创 AcWing 827. 双链表

数据结构

2022-07-20 15:45:39 222

原创 AcWing 826. 单链表

数据结构

2022-07-17 21:32:01 417

原创 AcWing 803. 区间合并

基础算法

2022-07-16 23:24:01 127

原创 AcWing 802. 区间和

基础算法

2022-07-16 20:25:09 295

原创 PAT B1028 人口普查

查找元素

2022-07-16 11:42:00 77

原创 AcWing 801. 二进制中1的个数

基础算法

2022-07-15 19:02:53 145

空空如也

空空如也

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

TA关注的人

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