- 博客(24)
- 收藏
- 关注
原创 苍穹外卖总结
苍穹外卖是我做的第一个后端项目,里面用到了大量的增删改查,前后大概花了两个月的时间学习和打磨。我希望第一个项目能作为基础,为之后的项目做好铺垫,所以学的也比较细,其中大部分接口都是我自己先手写,手写完成之后再去看视频,很像以前上高中时做完题对答案的一样,看看我代码写的是否规范,看看我的逻辑是否没有纰漏。这个项目中有大量的增删改查的接口,每次写完一个接口,在测试通过的时候,都会收获巨大的成就感。
2025-04-03 09:42:21
776
原创 苍穹外卖——套餐修改时数据不回显
今天在改套餐相关接口时,出现了一些问题。根据之前写的菜品和口味两个表的增删改查操作的时候,修改菜品数据时,前端页面会向后端发送请求,将菜品信息回显,口味数据也会出现。但是在写套餐相关的接口时,当修改套餐时,也需要先将套餐数据回显,其中也包括菜品数据。但是我一直发现一个问题,我在新增套餐时,向里面插入了新品套餐,但在套餐修改时,回显不出菜品数据。
2025-03-11 18:28:11
449
1
原创 回溯算法——77,216
今天学习回溯算法,回溯伴随着递归。而回溯算法的本质,就是通过递归来遍历出该问题的所有情况,在这所有情况里,寻找符合题意的解。所以,回溯并不是什么高深的算法,本质就是遍历,它的效率并不高。如此一来,就引出了回溯。如果一道题中,用到了递归进行遍历所有可能的情况,那么就很有可能出现回溯。简单来说,回溯就是,在递归时,发现该种情况不符合要求,要回退到先前的某一步,回退的过程即是回溯。回溯算法也有固定的解题模板,按照模板,我们可以很快建立出大致思路。
2025-02-21 17:40:22
249
原创 苍穹外卖——启动时数据库连接问题报错
在做苍穹外卖时,第一次启动程序后,跟着视频进行前后端联调,发现程序可以正常启动,但是前端点击登录后,一直没有反应。
2025-02-13 09:45:40
430
原创 二叉树——102,107,199,637
前中后序遍历是二叉树的深度遍历,而层序遍历则是二叉树的广度遍历。顾名思义,二叉树的层序遍历就是一层一层遍历二叉树的每一个节点。今天的几道题都是关于二叉树的层序遍历的,大体思路都非常相似,都是在层序遍历的基础上实现了有着些许差异的不同。
2025-02-02 00:52:26
724
原创 二叉树——144,94,145
今天开始学习二叉树相关内容。刚开始学习二叉树,就像学习数据结构一样,先学比较经典的二叉树的三种深度遍历方式,分别是前序遍历,中序遍历,以及后续遍历。我在学数据结构的时候,光学会了最简单的递归法遍历。今天在刷题的时候,学会了使用非递归法也就是迭代法来遍历。前中后序遍历,顾名思义,就是根节点的遍历的顺序。
2025-01-31 22:10:09
605
原创 字符串——344,541
字符串章节类似于数组章节,但是又有略微不同。今天的题目分别是LeetCode.344反转字符串和LeetCode.541反转字符串Ⅱ。对于本题,如果仔细学习和思考了代码随想录前面的内容,并且结合题目描述,空间复杂度为O(1),是比较容易想到解决办法的。在看到这道题的时候,第一反应会想到使用双指针法,进而思考使用快慢指针还是使用对撞指针,因为本题需要我们反转字符串,将最前面和最后面的元素进行互换,然后向中心靠近,继续互换,所以自然而然想到对撞指针。本题代码十分简洁。主要思路是,一个指针指向第一个元素,另一
2025-01-22 23:27:18
295
原创 链表——203,206
结束了数组,我们开始学习链表。今天一共有两道题目,一道是,另一道是.这两道题都不是很难,但是我认为是很有用的两道题目,通过这两道题目,可以进一步掌握双指针思路,并且对递归的写法加深理解。
2025-01-18 23:12:21
693
原创 数组——704,27,977
今天一共学习三道数组习题,分别是LeetCode704.二分查找,LeetCode27.移除元素,LeetCode977.有序数组的平方。
2025-01-15 23:31:01
755
原创 数据结构与算法——数组的实现(Java)
数组是可以存储一组数据的数据类型,特点是逻辑相邻的数据在物理存储位置上也相邻。数组的存储大小在刚开始创建数组时已经定好,不可发生改变,所以当数组空间存满后,需要我们人为对它进行扩容,因为数组大小不可改变,这里的扩容其实是创建一个更大的新数组。数组的特点还有查询快,但是向其中插入和删除较为费时,需要给待插入数据腾出位置,所以其后方的每一个元素都需要移动。因此如果插入位置在尾部,耗时最小,但是如果在首位,耗时最大。首先定义三个变量,分别表示,存储数据的数组,数组已存数据的长度,整个数组的大小。
2024-11-06 09:37:08
1416
原创 数据结构与算法——链表栈的实现
出栈操作和顺序栈一样,先出的是最近入栈的元素,先入先出,后入后出。出栈时先判断是否为空,如果为空,返回信息0。如果不为空,则头结点的后继结点就是需要出栈的结点。将头结点的元素指向它后面的后面,跳过出栈结点,释放掉出栈结点的空间资源。因为栈的性质,先进的再最上面,头结点的指针应该指向最近入栈的结点,先将新结点指向头结点的后继结点。再改变头结点的后继结点为新结点,给数据域赋值。和以前学到的链表操作相同,将头结点的指针域置空,等待指向下一结点。如果头结点的元素后继结点为空,则栈空。
2024-11-04 15:03:07
433
原创 数据结构与算法——双链表的实现
上次学习了单链表,这次来学习双链表。二者之间的区别是,单链表中的每个结点只存有后继结点的地址,而双链表中则存了两个地址,一个是前驱结点的地址,一个是后继结点的地址。
2024-10-24 14:57:21
1512
原创 数据结构与算法——单链表的实现
结构体的定义中,因为链表是链式存储结构,需要一个每一个结点处都需要存放一个指针来指向下一个结点的位置,而下一个结点的类型依然是这个结构体类型,所以指针的定义就是。数据域中的元素为了举例,以int整形为例,当然也可以设置其它的数据类型。
2024-10-22 14:49:47
963
原创 数据结构与算法——顺序表的实现
结构体中有三个元素。第一个是用于存储的顺序表元素的数组,顺序表的特点是物理位置相邻的元素逻辑位置也相邻。第二个是数组的容量,这个在初始化时需要分配空间,并且在插入操作时注意数组是否已经填满,防止出现数组越界。第三个是顺序表中元素的个数。
2024-10-16 16:29:28
352
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人