自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 力扣刷题——509. 斐波那契数

斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:F(n) = F(n - 1) + F(n - 2),其中 n > 1给定 n ,请计算 F(n)。示例 1:输入:n = 2输出:1解释:F(2) = F(1) + F(0) = 1 + 0 = 1示例 2:输入:n = 3输出:2解释:F(3) = F(2) + F(1) = 1 + 1 = 2示例 3:输入:n = 4。

2026-04-21 21:22:35 81

原创 力扣刷题——第454题.四数相加II

给你四个整数数组 nums1、nums2、nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足:0 <= i, j, k, l < nnums1[i] + nums2[j] + nums3[k] + nums4[l] == 0示例 1:输入:nums1 = [1,2], nums2 = [-2,-1], nums3 = [-1,2], nums4 = [0,2]输出:2解释:两个元组如下:输入:nums1 = [0], nums2 = [0], n

2026-03-24 19:38:28 171

原创 力扣刷题——101. 对称二叉树

给你一个二叉树的根节点 root , 检查它是否轴对称。示例 1:输入:root = [1,2,2,3,4,4,3]输出:true示例 2:输入:root = [1,2,2,null,3,null,3]输出:false提示:树中节点数目在范围 [1, 1000] 内。

2026-03-24 19:37:51 70

原创 整数域二分

描述对于给定的长度为nn 的数组 ,你需要实现:区间元素个数查询:输出数组中大于等于 l且小于等于r 的元素个数;你一共需要处理q 次操作。输入描述:第一行输入两个整数 n,q(1≦n,q≦2×10^5 ) 代表数组中的元素数量、操作次数。第二行输入 n 个整数代表初始数组。此后 q 行,每行输入两个整数 代表区间的边界。输出描述:对于每一次查询操作,在一行上输出一个整数代表区间中的元素个数。示例1输入:7 30 3-1 4-10 10。

2026-03-23 15:48:53 403

原创 第202题. 快乐数

编写一个算法来判断一个数 n 是不是快乐数。「快乐数」 定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果这个过程 结果为 1,那么这个数就是快乐数。如果 n 是 快乐数 就返回 true;不是,则返回 false。

2026-03-22 15:54:56 62

原创 力扣刷题——349. 两个数组的交集

给定两个数组 nums1 和 nums2 ,返回 它们的 交集。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序。

2026-03-22 15:15:28 39

原创 力扣刷题——104.二叉树的最大深度

给定一个二叉树 root ,返回其最大深度。二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。示例 1:输入:root = [3,9,20,null,null,15,7]输出:3示例 2:输入:root = [1,null,2]输出:2提示:树中节点的数量在 [0, 104] 区间内。

2026-03-22 14:44:14 37

原创 力扣刷题——226.翻转二叉树

给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。示例 1:输入:root = [4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1]示例 2:输入:root = [2,1,3]输出:[2,3,1]示例 3:输入:root = []输出:[]提示:树中节点数目范围在 [0, 100] 内。

2026-03-22 14:42:21 49

原创 22. 二叉树的遍历

题目描述给出一个n个节点的二叉树,请求出二叉树的前序遍历,中序遍历和后序遍历。输入描述题目包含多行输入,第一行为一个整数 N,表示二叉树的节点总数,后面将有 N 行对应于二叉树的 N 个节点的信息。每行的数据格式遵循如下规则:每行开始是该节点的标识符,代表二叉树中具体的一个节点。节点标识符之后是两个数字,分别表示该节点的左孩子和右孩子的序号。序号根据输入顺序从 1 开始自动分配,即第一个输入的节点序号为 1,第二个为 2,以此类推。

2026-03-22 10:35:21 207

原创 50. 随机数排序

题目描述生成 N 个 1 到 500 的随机数,你需要删除掉其中重复的数字,即相同的数字只保留一个,把其余相同的数字去掉,然后再把这些数从小到大进行输出。输入描述第一行先输入随机整数的个数 N。接下来一行包含 N 整数,代表生成的随机数。输出描述输出为单独一行,为去重排序过的数组,每个数字后都有一个空格。输入示例32 2 1输出示例1 2提示信息数据范围:1 <= 随机数 <= 500。

2026-03-21 10:59:45 37

原创 力扣刷题——116.填充每个节点的下一个右侧节点指针

给定一个 完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:int val;Node *left;Node *next;填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 next 指针都被设置为 NULL。示例 1:输入:root = [1,2,3,4,5,6,7]输出:[1,#,2,3,#,4,5,6,7,#]

2026-03-21 10:59:16 210

原创 力扣刷题——111.二叉树的最小深度

给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。示例 1:输入:root = [3,9,20,null,null,15,7]输出:2示例 2:输入:root = [2,null,3,null,4,null,5,null,6]输出:5提示:树中节点数的范围在 [0, 105] 内。

2026-03-21 10:58:42 63

原创 力扣刷题——515.在每个树行中找最大值

给定一棵二叉树的根节点 root ,请找出该二叉树中每一层的最大值。示例1:输入: root = [1,3,2,5,3,null,9]输出: [1,3,9]示例2:输入: root = [1,2,3]输出: [1,3]提示:二叉树的节点个数的范围是 [0,104]

2026-03-21 10:58:02 46

原创 34. 大鱼吃小鱼

题目描述现在有 N 条鱼,每条鱼的体积为 Ai,从左到右排成一排。A 数组是一个排列。定义一次大鱼吃小鱼的操作为:对于每一条鱼,它在每一次操作时都会吃掉右边比自己小的一条鱼,值得注意的是,在同一次操作中,每条鱼吃掉比自己小的鱼是同时发生的。举例:假设有三条鱼,体积分别为 [5, 4, 3],在一次操作中,4 吃 3,5 吃 4,最终只剩下 [5] 一条鱼。问题是,在多少次操作之后,鱼的数量就不会变了。输入描述输入共有两行。第一行为一个整数 N。第二行为一个数组,代表鱼的体积。

2026-03-21 07:29:45 298

原创 力扣刷题——110.平衡二叉树

给定一个二叉树,判断它是否是 平衡二叉树示例 1:输入:root = [3,9,20,null,null,15,7]输出:true示例 2:输入:root = [1,2,2,3,3,null,null,4,4]输出:false示例 3:输入:root = []输出:true提示:树中的节点数在范围 [0, 5000] 内。

2026-03-20 17:08:55 42

原创 力扣刷题——77. 组合

给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。

2026-03-20 17:08:31 64

原创 力扣刷题——242.有效的字母异位词

给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的 字母异位词。示例 1:输入: s = “anagram”, t = “nagaram”输出: true示例 2:输入: s = “rat”, t = “car”输出: false提示:s 和 t 仅包含小写字母进阶: 如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?

2026-03-20 17:07:58 224

原创 99. 计数孤岛

题目描述给定一个由 1(陆地)和 0(水)组成的矩阵,你需要计算岛屿的数量。岛屿由水平方向或垂直方向上相邻的陆地连接而成,并且四周都是水域。你可以假设矩阵外均被水包围。输入描述第一行包含两个整数 N, M,表示矩阵的行数和列数。后续 N 行,每行包含 M 个数字,数字为 1 或者 0。输出描述输出一个整数,表示岛屿的数量。如果不存在岛屿,则输出 0。输入示例4 51 1 0 0 01 1 0 0 00 0 1 0 00 0 0 1 1输出示例3提示信息。

2026-03-20 14:25:56 295

原创 117. 软件构建

题目描述某个大型软件项目的构建系统拥有 N 个文件,文件编号从 0 到 N - 1,在这些文件中,某些文件依赖于其他文件的内容,这意味着如果文件 A 依赖于文件 B,则必须在处理文件 A 之前处理文件 B (0 <= A, B <= N - 1)。请编写一个算法,用于确定文件处理的顺序。输入描述第一行输入两个正整数 N, M。表示 N 个文件之间拥有 M 条依赖关系。后续 M 行,每行两个正整数 S 和 T,表示 T 文件依赖于 S 文件。输出描述。

2026-03-20 14:25:26 634

原创 19. 单链表反转

题目描述根据一个整数序列构造一个单链表,然后将其反转。例如:原单链表为 2 3 4 5 ,反转之后为5 4 3 2输入描述输入包括多组测试数据,每组测试数据占一行,第一个为大于等于0的整数n,表示该单链表的长度,后面跟着n个整数,表示链表的每一个元素。整数之间用空格隔开输出描述针对每组测试数据,输出包括两行,分别是反转前和反转后的链表元素,用空格隔开如果链表为空,则只输出一行,list is empty输入示例0输出示例1 2 3 4 55 4 3 2 1。

2026-03-19 14:15:44 51

原创 23. 二叉树的高度

题目描述现给定一棵二叉树的先序遍历序列和中序遍历序列,要求你计算该二叉树的高度。输入描述输入包含多组测试数据,每组输入首先给出正整数N(<=50),为树中结点总数。下面2行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区别大小写)的字符串。输出描述对于每组输入,输出一个整数,即该二叉树的高度。输入示例9ABDFGHIECFDHGIBEAC7AbcdefggfedcbA输出示例57。

2026-03-19 14:15:24 41

原创 力扣刷题——429.N叉树的层序遍历

给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。示例 1:输入:root = [1,null,3,2,4,null,5,6]输出:[[1],[3,2,4],[5,6]]示例 2:输入:root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]

2026-03-18 09:29:34 63

原创 力扣刷题——637.二叉树的层平均值

给定一个非空二叉树的根节点 root , 以数组的形式返回每一层节点的平均值。与实际答案相差 10-5 以内的答案可以被接受。示例 1:输入:root = [3,9,20,null,null,15,7]输出:[3.00000,14.50000,11.00000]解释:第 0 层的平均值为 3,第 1 层的平均值为 14.5,第 2 层的平均值为 11。因此返回 [3, 14.5, 11]。示例 2:输入:root = [3,9,20,15,7]

2026-03-17 09:51:01 37

原创 力扣刷题——199.二叉树的右视图

给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。示例 1:输入:root = [1,2,3,null,5,null,4]输出:[1,3,4]解释:示例 2:输入:root = [1,2,3,4,null,null,null,5]输出:[1,3,4,5]解释:示例 3:输入:root = [1,null,3]输出:[1,3]示例 4:输入:root = []输出:[]提示:二叉树的节点个数的范围是 [0,100]

2026-03-17 09:50:44 48

原创 力扣刷题——102. 二叉树的层序遍历&107. 二叉树的层序遍历 II

给你二叉树的根节点 root ,返回其节点值的 层序遍历。(即逐层地,从左到右访问所有节点)。示例 1:输入:root = [3,9,20,null,null,15,7]输出:[[3],[9,20],[15,7]]示例 2:输入:root = [1]输出:[[1]]示例 3:输入:root = []输出:[]提示:树中节点数目在范围 [0, 2000] 内。

2026-03-16 09:29:43 191

原创 力扣刷题——反转字符串

编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。示例 1:输入:s = [“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]示例 2:输入:s = [“H”,“a”,“n”,“n”,“a”,“h”]输出:[“h”,“a”,“n”,“n”,“a”,“H”]提示:s[i] 都是 ASCII 码表中的可打印字符。

2026-03-16 09:29:24 37

原创 力扣刷题——150. 逆波兰表达式求值

根据 逆波兰表示法,求该后缀表达式的计算结果。有效的算符包括 +、-、*、/。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。

2026-03-15 09:08:04 233

原创 二叉树的递归遍历

给你二叉树的根节点 root ,返回它节点值的 前序 遍历。示例 1:输入:root = [1,null,2,3]输出:[1,2,3]解释:示例 2:输入:root = [1,2,3,4,5,null,8,null,null,6,7,9]输出:[1,2,4,5,6,7,3,8,9]解释:示例 3:输入:root = []输出:[]示例 4:输入:root = [1]输出:[1]提示:树中节点数目在范围 [0, 100] 内。

2026-03-15 09:07:09 50

原创 力扣算题——239. 滑动窗口最大值

给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回 滑动窗口中的最大值。

2026-03-14 11:03:02 68

原创 力扣刷题——347.前 K 个高频元素

给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。示例 1:输入:nums = [1,1,1,2,2,3], k = 2输出:[1,2]示例 2:输入:nums = [1], k = 1输出:[1]示例 3:输入:nums = [1,2,1,2,1,2,3,1,3,2], k = 2输出:[1,2]提示:k 的取值范围是 [1, 数组中不相同的元素的个数]

2026-03-14 11:02:45 245

原创 力扣刷题——1047. 删除字符串中的所有相邻重复项

给出由小写字母组成的字符串 s,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在 s 上反复执行重复项删除操作,直到无法继续删除。在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。示例:输入:“abbaca”输出:“ca”解释:例如,在 “abbaca” 中,我们可以删除 “bb” 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 “aaca”,其中又只有 “aa” 可以执行重复项删除操作,所以最后的字符串为 “ca”。

2026-03-13 09:52:57 48

原创 力扣刷题——20. 有效的括号

给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括号。示例 1:输入:s = “()”输出:true示例 2:输入:s = “()[]{}”输出:true示例 3:输入:s = “(]”输出:false示例 4:输入:s = “([])”输出:true示例 5:输入:s = “([)]”

2026-03-13 09:34:51 51

原创 力扣刷题——225. 用队列实现栈

请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。实现 MyStack 类:void push(int x) 将元素 x 压入栈顶。int pop() 移除并返回栈顶元素。int top() 返回栈顶元素。boolean empty() 如果栈是空的,返回 true;否则,返回 false。

2026-03-12 11:42:28 241

原创 力扣刷题——232.用栈实现队列

请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty() 如果队列为空,返回 true;

2026-03-12 10:51:50 301

原创 力扣刷题——28.找出字符串中第一个匹配项的下标

给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1。示例 1:输入:haystack = “sadbutsad”, needle = “sad”输出:0解释:“sad” 在下标 0 和 6 处匹配。第一个匹配项的下标是 0 ,所以返回 0。

2026-03-11 11:39:11 50

原创 55. 右旋字符串

字符串的右旋转操作是把字符串尾部的若干个字符转移到字符串的前面。给定一个字符串 s 和一个正整数 k,请编写一个函数,将字符串中的后面 k 个字符移到字符串的前面,实现字符串的右旋转操作。例如,对于输入字符串 “abcdefg” 和整数 2,函数应该将其转换为 “fgabcde”。输入共包含两行,第一行为一个正整数 k,代表右旋转的位数。第二行为字符串 s,代表需要旋转的字符串。输出共一行,为进行了右旋转操作后的字符串。

2026-03-09 12:01:12 43

原创 力扣刷题——541. 反转字符串II

给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。如果剩余字符少于 k 个,则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。示例 1:输入:s = “abcdefg”, k = 2输出:“bacdfeg”示例 2:输入:s = “abcd”, k = 2输出:“bacd”提示:s 仅由小写英文组成。

2026-03-09 10:29:39 45 1

原创 力扣刷题——142.环形链表II

给定一个链表的头节点 head ,返回链表开始入环的第一个节点。如果链表无环,则返回 null。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。不允许修改 链表。示例 1:输入:head = [3,2,0,-4], pos = 1。

2026-03-08 14:31:03 196

原创 力扣刷题——160.链表相交

给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null。图示两个链表在节点 c1 开始相交:题目数据 保证 整个链式结构中不存在环。注意,函数返回结果后,链表必须 保持其原始结构。自定义评测:评测系统 的输入如下(你设计的程序 不适用 此输入):intersectVal - 相交的起始节点的值。如果不存在相交节点,这一值为 0listA - 第一个链表listB - 第二个链表。

2026-03-08 10:21:08 335

原创 力扣刷题——24. 两两交换链表中的节点

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。示例 1:输入:head = [1,2,3,4]输出:[2,1,4,3]示例 2:输入:head = []输出:[]示例 3:输入:head = [1]输出:[1]提示:链表中节点的数目在范围 [0, 100] 内。

2026-03-07 11:33:34 60

空空如也

空空如也

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

TA关注的人

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