- 博客(16)
- 收藏
- 关注
原创 [简单]LeetCode 1614. 括号的最大嵌套深度
all right 这个题目真的很长,一句话总结:最大括号深度。这题想复杂了。。想到了+ - * /的优先级排序。。入栈出栈括号配对(这个想对了)。。另外还去定义了栈。。whatever。
2023-06-10 00:03:58
190
原创 [简单]LeetCode 剑指 Offer 06. 从尾到头打印链表
有点像前边儿的反转链表,但是这里是用数组返回。这样的话用栈来做就可以了。首先创建一个数组stack,将原数组压入栈中。然后再创建一个数组ret,将stack的元素按顺序出栈保存在ret里,即可实现从尾到头。此处记得free前面的stack。
2023-06-08 23:44:48
129
原创 [中等]LeetCode 24. 两两交换链表中的节点
前面刷的一道题叫反转链表,用到了递归,这题也可以使用递归。其实递归有个特点,想的越细越难懂。就看整个题目,能否分割成一个小步骤,一直在重复这个步骤那就可以考虑递归。就相当于抽象成f(x)。阶乘都知道吧?此处引用@英雄哪里出来 星球的文章中的部分截图(侵删)什么叫递归?就是递推+回归组成的。回到本题,如果链表是偶数长度的话,两个结点的交换是独立的,不会影响其他结点,那么这就可以使用递归。假设整个链表除了头结点和头结点的下一个结点没有交换,其余的都交换完了,这样就可以写出来了。
2023-06-07 23:28:18
119
原创 [中等]LeetCode 237. 删除链表中的节点
本题只能获取到node后面的结点,正常来说删除操作需要能够获取到node的前驱结点。这可咋办?将node的下一个结点的值赋给node,然后删除掉node的下一个结点。相当于删除掉了node。如果觉得难理解请看这句话:如何让自己在世界上消失,但又不死?——将自己完全变成另外一个人,再杀了那个人就行了。——摘自LeetCode评论区。
2023-06-07 21:12:53
114
原创 [中等]LeetCode 19. 删除链表的倒数第 N 个结点
创建快慢指针。快指针在慢指针后面n个位置。当快指针指向尾结点的下一个结点即为NULL的时候,慢指针指向的刚好是倒数第n个结点。但是本题需要删除倒数第n个结点,所以慢指针应该指向倒数第n个结点的前驱结点。因此快指针还需要往后走一个位置,这样当快指针到NULL的时候,慢指针刚好在倒数第n个结点的前驱结点。此时将慢指针所指向的结点的下一个结点的下一个结点,赋值给慢指针所指向的结点的下一个结点(开始绕口令),其实也就是这样就可以实现删除倒数第n个结点。
2023-06-06 00:04:48
72
原创 [简单]LeetCode 面试题 02.02. 返回倒数第 k 个节点
这题用双指针做就很快了,找出倒数第k个节点,那么两个指针只需要间隔k个位置,当快指针指向最后一个节点的下一个节点,即NULL时,慢指针就指向了倒数第k个节点。直接返回即可。
2023-06-05 21:59:27
118
1
原创 [简单]LeetCode 2011. 执行操作后的变量值
看到题目给出的参数,其中有一个 char **是二维数组。看到这个就慌了,不熟悉。这题本身逻辑很简单,但一开始使用的判断是operations[i]=='X++'这样的,大错特错!没把二维数组放在眼里!正确做法是operation[i][j]这样的写法。我们来看X++、++XX–、–X这两类中间的元素都是+或者-,于是乎就可以使用这个来作为区分判断。
2023-06-04 22:14:12
153
1
原创 [简单]LeetCode 剑指 Offer 05. 替换空格
这个题用c解的话需要注意:c语言中的字符串其实是字符数组+‘\0’,所以不可以直接将空格替换成’%20’。原本字符串最大长度是10000,因此最坏情况下替换后长度为30000+1(结束符)的长度。因此需要malloc的内存大小为sizeof(char)*30001。
2023-06-04 20:57:44
114
1
原创 [简单]LeetCode 2535. 数组元素和与数字和的绝对差
一开始是这样写的,因为测试用例都是两位数的所以能通过,但是如果是3、4位数那就出错了!!
2023-06-04 15:21:02
201
1
原创 [简单]LeetCode 27.移除元素
这道题目有个知识点:在函数里修改输入数组对于调用者是可见的。这个点我印象非常深刻。去年在用c刷题的时候就着重理解了一波这个问题。题目给的解释已经非常清晰明了了,这里不做过多赘述。这道题第一反应就是可以将==val的元素和末尾进行交换。但是如果测试用例的末尾元素也是val那不就翻车了奥?!所以这里需要使用到while,如果nums[i]==val并且i<numSize的时候,我们继续进行末尾元素交换。但是在上一回操作的时候numSize已经自减了,所以第二回其实是在和倒数第二个元素进行交换。
2023-06-04 13:30:52
114
1
原创 [简单]LeetCode 1464.数组中两元素的最大乘积
找到最大和第二大的两个数,再去做计算。有两种方法:第一种:直接使用qsort排序,最后两个数就是最大和第二大的数字。第二种:遍历比较,再用两个变量去保存。
2023-06-03 12:19:26
131
原创 SpringBoot+Knif4j接口文档,出现No mapping for GET /doc.html
springboot整合Knife4j出现404
2022-08-27 21:10:43
1669
原创 狂神说Java作业:写一个计算器,要求实现加减乘除功能,并且能够循环接收新的数据,通过用户交互实现
狂神说Java作业:写一个计算器,要求实现加减乘除功能,并且能够循环接收新的数据,通过用户交互实现思路推荐:写4个方法:加减乘除利用循环+switch进行用户交互传递需要操作的两个数输出结果package com.kuangstudy.method;import java.util.Scanner;public class homework { public static void main(String[] args) { Scanner scann
2021-08-04 17:00:41
258
原创 markdown语法详解
markdown语法详解如何定义标题1、#+一个空格+文字 表示一级标题,即最大标题2、##+一个空格+文字 表示二级标题,即二级标题,以此类推3、加粗:** +文字+ ** 文字4、斜体:* + 文字+ * 文字5、快捷键:ctrl+B 粗体 ctrl+I 斜体 ctrl+u 下划线6、删除线:~~ + 文字 + ~~ 文字引用“> +文字”这是一条例子分割线“—”或者“***”图片“ ![填上图片的名字]+(填上图片路径)”超链接“[写上超链接的
2021-07-25 15:21:39
172
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人