- 博客(21)
- 收藏
- 关注
原创 【力扣】2109. 向字符串添加空格
基本思想就是:虽然题目中写的是在对应的字母前加上空格,但是实际上是将当前字符的位置替换为空格,整个字符串向后移动一位。所以使用官方题解的方法:双指针。
2025-03-30 12:43:26
180
原创 【力扣】2716. 最小化字符串长度
遍历字符串,将当前的字符存到 set 容器中。由于 set 容器中的元素不允许重复,所以最后我们 set 容器中的元素就是最小字符串,直接返回容器大小即可。经典看题半小时,写题五分钟,这题干简直不知所云。删除相同字符并且返回删除后的字符串大小。
2025-03-28 16:37:21
89
原创 【力扣】2829. k-avoiding 数组的最小总和
简单来说就是把 k 拆成 和 为 k 的两个正整数,压入数组 n,其中不能存在这种和为 k 的正整数对,然后计算在数组 n 填满的情况下的数组元素最小和。这样我们需要的就是小于 k/2 的那部分正整数了。对于填不满数组 n 的情况,我们从 k 开始压入数组,力求最小即可。所以这道题终点在于小于 k 的部分,由于要求最小和,所以需要的是正整数对的较小的那个。以 k/2 点为分界线,左右两边总有正整数对能够使他们的和为 k。到处输出(cout << “shabi” << endl;全是循环(夏姬霸for)
2025-03-26 22:25:16
255
原创 【UE5】遇到的问题FDamageEvent:不允许使用不完整的类型
前提:使用 TakeDamage 函数,需要一个 FDamageEvent 类型的事件来作为参数。此时在定义 FDamageEvent 的局部变量这行出现了错误:不允许使用不完整的类型。解决方法是:添加头文件。
2025-03-25 18:48:09
268
原创 【力扣MySQL】196. 删除重复的电子邮箱
这是题干的一部分,表明了他最后给的输出是修改后的Person表,也就是说你的所有select操作都不会有输出。然而对于使用delete语句来说,应该先使用select语句进行查询,在确认要删除的数据之后在进行delete操作,这样更加安全。真正操作数据库的时候可不会给你第二次删除的机会,删错了数据只能回滚了,非常麻烦。本题思路与181相似,也是一表分俩表两次查询,一个表查询重复的邮箱,将其命名为a;哈哈,没用,只是将这个表内连接一下,也就是把a表和b表连接起来;运行脚本后,显示的答案是。
2025-01-16 11:07:34
277
原创 【力扣MySQL】183. 从不订购的客户
看懂这两个表后题目就可以理解成“找到Customers.id不在Orders.customerId的Customers.name”最后那个as 'Customers'要加,不然是不会过的。看来这两位就是工资没有员工高的经理吧。不订购是怎么成为客户的?
2025-01-15 15:42:12
145
原创 【力扣MySQL】182. 查找重复的电子邮箱
可以看到where的运行顺序在group by之前,而我们需要再group by之后添加条件,那么这里用到的是having子句。确实是顺序问题,不过不是代码的顺序,而是MySQL的运行顺序。在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。count()我们移动到下面用,不然返回的答案也是带有计数的。🤓👆诶这个我会,加限制条件count(*)>1不就行了?HAVING 子句可以让我们筛选分组后的各组数据。去重完发现答案不对,原来是查重...
2025-01-15 11:06:59
178
原创 【力扣MySQL】181. 超过经理收入的员工
这个题乍一看是有歧义的,他说的是比经理工资高的员工,然而答案是工资比自己的经理高的员工(看不懂英文,不知道英文是什么样的)当然你直接用上面这个代码是没法通过的,因为我说了你没见过as起别名的话这道题就做不了。对于同一张表,查询员工的表将其命名为a,查询经理的表将其命名为b。对同一张表进行两次查询,没见过as的话做不出来,也就是起别名。第二次查询:查询同事之间工资差距。
2025-01-14 17:25:36
147
原创 【力扣MySQL】175. 组合两个表
正确做法是将题目需要的两个表的对应字段查询出来后使用join进行合并。也没有问题,不过要分清哪个表是左,哪个表是右。本菜鸡第一眼想到的是创建新表。所以这里需要完全展示的只有。
2025-01-14 17:02:58
129
原创 【力扣】2207. 字符串中最多数目的子序列
本题的示例解释有明显的误导倾向,刚开始遇到很容易想歪。其实那个任意位置插入毫无用处,本题真正有用的插入位置只有pattern[0]插入字符串开头,或者pattern[1]插入字符串末尾。这样计算子序列的时候前面(或后面)所有能够成为子序列的元素都可以组成子序列了。为什么要先判断pattern[1]呢?如果先判断pattern[0]会怎么样?
2024-09-24 11:12:12
277
1
原创 【力扣】61. 旋转链表
首先确定旋转次数:旋转次数大于链表大小的都要进行求余处理;旋转次数等于链表大小的约等于没转,直接咋来咋return;旋转次数小于链表大小的才是正常情况。然后找到转完的、新链表的头结点。这一点参考寻找倒数第k个结点,很容易理解。最后就是连接旧链表头尾,断开新链表头尾。
2024-07-21 14:10:15
248
原创 LCR 140. 训练计划 II
寻找倒数第k个结点,总体思路就是创建两个指针,两个指针之间的距离就是倒数的个数,就像游标卡尺一样,移动到链表最后面就找到倒数第k的结点了。
2024-07-21 14:05:05
213
原创 【力扣】合并有序链表
通过循环判断两个链表的值的大小来改变结点的指向,从而达到合并有序链表的目的。迭代法一定会漏下一个结点,最后需要判断是那条链表漏下了。代码先放这里,有空再说(其实我也不太会)
2024-07-20 16:30:55
206
原创 引用和值传递
传递对象,而是用值传递,那么会发生对象的拷贝。这时,即使传递的是子类对象,在函数内部处理的实际上是基类对象的副本。由于这种副本是基类类型,它会调用基类的成员函数,而不是子类的重写函数。这种行为违背了多态性的基本原则。playSound函数用到了引用,如果使用值传递的话就会运行基类Animal的makeSound虚函数,而不是对应的子类的makeSound重写函数。在C++中,如果你不用引用(
2024-06-26 17:12:20
195
原创 【力扣】15. 三数之和
本题最难的是对于各种情况的判断,还有遍历和判断后的处理是否越界,基本思路很好理解。(本来想练练排序的结果一个sort()就完事了hh)引用一下题解中大佬的思路,很清晰易懂(@
2024-03-04 12:28:52
492
1
原创 【力扣】二叉树的遍历
注意:此时node是叶子结点,是没有子节点的,node=node->right导致node为空节点,这时就会直接弹出栈顶节点,也就是该子节点的父节点,等到再次运行到node=node->right的时候,标记就会移动到右子节点,此时就完成了“左根右”。然后将栈1顶弹出并压入栈2,该节点的两个子节点压入栈1,以此类推,最后栈2按顺序依次弹出栈顶,这个顺序就是后序遍历的顺序。遍历规律:“根左右”。创建一个栈,先放入节点,弹出栈顶,然后根据先右后左的规律放入两个子节点,再弹出栈顶,直到栈为空。
2024-02-22 23:12:56
628
2
原创 【力扣】3. 无重复字符的最长子串
本题主要使用滑动窗口算法,定义左指针lp, 右指针rp,将字符串作为数组处理就好。滑动窗口主要由两个循环组成,若未满足条件则将右指针向右移,满足条件则左指针向右移。本题的条件为窗口中是否有重复的字符。本题哈希表仅作为数据存储的容器。
2023-12-02 09:16:10
33
原创 【力扣】1. 两数之和
两个元素x,y必然是一前一后出现的,如果存在符合条件的解,在遍历到x时,哈希表里没有符合的y,此时把x加入到了哈希表里,当遍历到y时,就可以在哈希表里找到对应的x了,所以只需要一次遍历。将数组元素加入哈希表,但在此之前应先对哈希表进行检查( find() ),否则会出现加入第一个元素后重新检查自己的情况,若 target 的值为数组第一个元素的值的两倍就尴尬了。(这个return {} 不加力扣会出错。先申请一个哈希表,然后遍历数组;
2023-11-21 17:36:29
43
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人