自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 牛客热题:包含min函数的栈

时间复杂度:O(1), 所有的请求均以O(1)的方式实现。​ 判断当前的值和s2的栈顶的数据比较,维护一个单调栈,用于实现常数级的min查询。空间复杂度:O(N), 使用了两个栈空间。​ 如果该值小就将其同时入栈给两个栈。,而第二个栈将自己的栈顶数据重入一遍。​ 否则,只入栈给第一个栈。​ 两个栈同时出栈即可。思路来自牛客大佬题解。

2024-05-20 13:53:18 639

原创 牛客热题:用两个栈实现队列

时间复杂度:O(N) , 每次push的时间复杂度是O(1), 但是pop的时候,因为存在需要将其中的栈的数据搬运到另一个栈所以需要O(N)的复杂度,其中N是对应的搬运的数据的个数。空间复杂度:O(1), 除了题目给出的栈以外,只使用了常数个额外的变量空间。

2024-05-20 13:16:49 259

原创 牛客热题:二叉搜索树的最近公共祖先

空间复杂度:主要取决于递归调用的深度,即函数调用栈的使用情况。在最坏情况下,如果二叉搜索树是一个不平衡的树,递归调用可能达到树的高度。因此,空间复杂度为 O(h),其中 h 是树的高度。时间复杂度:这段代码的时间复杂度取决于树的高度,即 O(h),其中 h 是树的高度。

2024-05-19 13:51:03 298

原创 牛客热题:在二叉树中找到两个最近公共祖先

这段代码主要是用来判断一棵二叉树是否是平衡二叉树的。空间复杂度: O(n),因为需要递归调用的栈空间。时间复杂度:O(n)

2024-05-19 13:50:14 327

原创 牛客热题:判断是否是平衡二叉树

这段代码主要是用来判断一棵二叉树是否是平衡二叉树的。空间复杂度: O(n),因为需要递归调用的栈空间。时间复杂度:O(n)

2024-05-18 12:16:49 614

原创 牛客热题:判断二叉树是不是搜索二叉树

空间复杂度:O(M),申请了一个队列空间,该队列的最大空间为二叉树的最后一层的节点数。时间复杂度:O(N), 遍历了一遍二叉树。

2024-05-17 12:03:01 428

原创 牛客热题:判断是否是完全二叉树

空间复杂度:O(M),申请了一个队列空间,该队列的最大空间为二叉树的最后一层的节点数。时间复杂度:O(N), 遍历了一遍二叉树。

2024-05-17 12:01:53 368 1

原创 牛客热题:镜像二叉树

空间复杂度:O(N),没有额外开变量,但是递归调用的函数栈帧的个数和二叉树的节点数相同。时间复杂度:O(N) , 遍历一遍二叉树。

2024-05-16 13:22:50 392

原创 牛客热题:合并二叉树

空间复杂度:O(N)。没有申请新的空间,但是递归调用栈占用了N的空间。时间复杂度:O(N),等于中序遍历的时间复杂度。

2024-05-16 13:06:06 285

原创 牛客热题:二叉树与双向链表

空间复杂度:O(N)。没有申请新的空间,但是递归调用栈占用了N的空间。时间复杂度:O(N),等于中序遍历的时间复杂度。

2024-05-15 12:15:32 694

原创 牛客热题:二叉树的最大深度

这样通过递归的方式,从根节点开始逐层向下计算深度,直到叶子节点为止,最终得到整棵树的最大深度。对于空间复杂度,在最坏情况下,递归调用会将所有节点压入调用栈,导致空间复杂度为 O(N)。这段代码使用了广度优先搜索(BFS)的思路来计算二叉树的最大深度。综上所述,这段代码的时间复杂度为 O(N),空间复杂度为 O(W)。时间复杂度:O(N)空间复杂度:O(W)

2024-05-15 11:12:09 583

原创 牛客热题:二叉树的后序遍历

空间复杂度:O(N), 创建了一个和二叉树节点数相等的数组,用来返回对应的答案。空间复杂度:O(N), 使用了额外的栈空间。时间复杂度:O(N) ,遍历了一遍二叉树。时间复杂度:O(N),遍历了一遍二叉树。

2024-05-14 14:40:24 292

原创 牛客热题:二叉树的中序遍历

空间复杂度:O(N) , 使用了一个和二叉树节点数相同的数组。时间复杂度:O(N) ,遍历了一遍对应的二叉树。空间复杂度:O(N), 答案数组和对应栈空间。时间复杂度:O(N) ,遍历了一遍二叉树。

2024-05-14 14:00:29 471

原创 牛客热题:二叉树的前序遍历

空间复杂度:O(N),使用了和二叉树的节点数相同的答案数组和对应的栈空间。空间复杂度:O(N) , 使用了一个和二叉树节点数相同的数组。时间复杂度:O(N) ,遍历了一遍二叉树。时间复杂度:O(N),遍历了一遍二叉树。

2024-05-14 13:36:50 319

原创 牛客热题:旋转数组的最小数字

,大部分情况维持二分的时间复杂度,但是当全相等的时候,就变成了O(N)空间复杂度:O(1),使用了常数个额外的变量。

2024-05-13 16:59:11 382

原创 牛客热题:比较版本号

时间复杂度:O(N) ,只遍历了一次对应字符串。空间复杂度:O(1),使用了常数个变量。

2024-05-13 16:52:55 386

原创 牛客热题:逆序对数量

归并排序内部又是将原数组分成很多个小区间,然后相邻的小区间再进行合并。逆序对:数组左边边的元素大于右边的元素则被称为一个逆序对。首先归并排序的思路就是将两个原本有序的数组合并为一个数组。空间复杂度:O(N), 借用了和原数组长度相同的辅助数组。那么在合并的途中,就涉及到那些元素的位置需要交换。(其中i,j是两个待合并数组的下标)),采用了归并排序的思路。

2024-05-10 09:30:17 225

原创 牛客热题:寻找峰值

​ 2.反之是下降的趋势,那么说明答案一定在左侧,所以我们舍弃右半部分区间。②计算mid,并且查看mid的值和他右边的值->用来判断mid的趋势。:增长的趋势,那么说明答案一定在右侧,所以我们舍弃左半部分区间。空间复杂度:O(1), 使用了常数个变量。空间复杂度:O(1), 使用了常数个变量。时间复杂度:O(N), 遍历了一遍数组。①首先将l,r位于数组的首尾。

2024-05-10 09:29:37 660

原创 牛客热题:二分查找

首先l, r分别指向数组的两端。空间复杂度:O(1), 使用了常数个额外的变量。计算l,r的中点mid,查看。),每次将搜索范围除以2。和target的关系。

2024-05-10 09:28:47 255

原创 牛客热题:删除链表中的重复元素-II

相等:则ne向后遍历,寻找不等于cur的节点,或者直到链表尾部。时间复杂度:O(N), 遍历了一遍链表,和一遍数组。分别表示前一个节点,当前节点,和下一个不重复的节点。空间复杂度:O(1), 使用了常数个变量。不相等:这三个指针都向后移动一个节点。时间复杂度:O(N), 遍历了一次链表。空间复杂度:O(N), 使用了哈希表。维护三个指针pre,cur,ne。

2024-05-09 09:08:05 602

原创 牛客热题:删除链表中的重复元素-I

空间复杂度:O(1), 使用了常熟个变量。时间复杂度:O(N),遍历了一遍链表。

2024-05-09 09:06:16 415

原创 牛客热题:链表的奇偶重排

空间复杂度:O(N), 借用了两个额外的数组空间,总长度为链表的长度。时间复杂度:O(N), 遍历两次链表,一次取数字,一次放数字。空间复杂度:O(1), 使用了常数个额外的变量。时间复杂度:O(N),只遍历了一次链表。

2024-05-08 08:55:54 270

原创 牛客热题:单链表排序

空间复杂度:O(1),借用了常数个额外的空间。),用了c++原生的sort,底层是快排。O(N),借用了额外的数组空间。),利用归并排序的思路实现。

2024-05-06 22:03:29 899 1

原创 牛客热题:链表相加(二)

空间复杂度:O(M + N), 创建了一个max(m, n) + 1的链表。时间复杂度:O(N), 反转是O(N), 相当于遍历了两次链表。

2024-05-06 09:53:03 227

原创 牛客热题:两个链表的第一个公共节点

让N1和N2一起遍历,当N1先走完链表1的尽头(为null)的时候,则从链表2的头节点继续遍历,同样,如果N2先走完了链表2的尽头,则从链表1的头节点继续遍历,也就是说,N1和N2都会遍历链表1和链表2。使用两个指针N1,N2,一个从链表1的头节点开始遍历,我们记为N1,一个从链表2的头节点开始遍历,我们记为N2。因为两个指针,同样的速度,走完同样长度(链表1+链表2),不管两条链表有无相同节点,都能够到达同时到达终点。(N1最后肯定能到达链表2的终点,N2肯定能到达链表1的终点)。

2024-05-04 12:55:28 277 1

原创 牛客热题:链表中的倒数最后K个节点

链表中倒数最后k个结点_牛客题霸_牛客网 (nowcoder.com)

2024-05-03 18:25:19 409

原创 牛客热题:链表中环的入口结点

通过定义slow和fast指针,slow每走一步,fast走两步,若是有环,则一定会在环的某个结点处相遇(slow == fast),根据下图分析计算,可知从。

2024-05-02 15:47:56 288

原创 牛客热题:判断链表是否有环

O(N),其中N为链表的长度,原因是当第一次相遇的时候慢指针的移动距离不会超过链表的长度。:O(N),其中N为链表的长度,遍历最多为链表的长度就可以判定是否有环。:O(N),最多使用链表长度的空间。:O(1),只建立了两个指针。

2024-04-30 22:56:26 90

原创 牛客热题:合并K个升序链表

个数字中的最小值,我们可以借助堆,也就是优先队列—>priority_queue来完成这一点。如果非要按照归并排序的合并思路,双指针不够用,我们可以直接准备。每个链表最多被遍历k - 1次,我们放缩为k次,那么需要最多。由于所有的链表的长度加起来为。, 使用了常数个额外的空间。但其实一般达不到O(个指针,每次比较得出。

2024-04-30 22:20:05 467

原创 牛客热题:合并升序链表

截止条件:当pHead1或者pHead2中有一个是空指针的时候,我们就返回其中哪个不为空的指针;的功能是合并这两个链表并使新链表中的节点仍然是递增排序的。空间复杂度:O(1) ,只使用了常数量级的变量个数。时间复杂度:O(N + M) ,遍历一次两个链表。时间复杂度:O(N + M) ,遍历一次两个链表。空间复杂度:O(N + M) ,迭代次数占用空间。若两个都为空指针,那么就随便返回其中一个。这时候我们当前的节点一定是以。

2024-04-29 21:58:45 776

原创 牛客热题:反转单向链表

2.所以我们每一次只需要将当前节点的next指向pre即可,然后再将pre指向cur,cur指向n;如何想到递归:因为我们反转单向链表的一个难点就是,无法快速的获取当前节点的上一个节点。同时n指向自己的next,直到cur指向空指针则完成链表的反转。空间复杂度:O(1) ,只使用了常数量级的变量个数。空间复杂度:O(1) ,只使用了常数量级的变量个数。n: 表示的是当前节点的下一个节点。时间复杂度:O(N) ,遍历一次链表。2.一个节点的链表:直接返回头指针。cur:表示当前遍历的节点。

2024-04-28 21:28:30 258 1

原创 MySQL的数据备份和恢复

本博客主要内容涉及到mysql数据库的备份和恢复

2024-04-28 18:44:10 749

原创 云备份项目--项目介绍

主要内容项目一些详细信息的介绍

2024-04-24 20:55:14 850

原创 云备份day05

主要内容实现Json实用类的设计,以及服务端的设计和实现,客户端的设计和实现

2024-04-24 20:53:32 880

原创 MySQL-使用CPP接入到MySQL

本博客主要内容介绍如何在c/cpp代码连接和管理数据库

2024-04-19 21:48:10 1159

原创 MySQL用户管理

本博客主要内容介绍数据库中用户管理,包括创建用户,删除用户等,以及数据库权限方面的问题

2024-04-19 21:45:49 1402 5

原创 MySQL视图

本博客主要内容介绍了MySQL中的视图的概念

2024-04-17 22:21:04 1039

原创 MySQL事务

本博客主要内容介绍了MySQL中事务的概念,也是MySQL中非常重要的知识点

2024-04-17 22:18:45 1354 1

原创 MySQL索引

本博客主要内容介绍了MySQL中索引的概念,是MySQL中比较重要的知识

2024-04-17 22:14:54 1746

原创 MySQL的内外连接

本博客主要内容主要介绍了MySQL中的内外连接

2024-04-17 22:07:52 720

空空如也

空空如也

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

TA关注的人

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