自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(88)
  • 资源 (3)
  • 收藏
  • 关注

原创 104.二叉树的最大深度

是指从根节点到最远叶子节点的最长路径上的节点数。

2024-09-29 20:18:43 285

原创 19.删除链表的倒数第N个节点

需要找到倒数第 n 个节点,因此可以使用两个指针 first 和 second 同时对链表进行遍历,并且 first 比 second 超前 n 个节点。当 first 遍历到链表的末尾时,second 就恰好处于倒数第 n 个节点。给你一个链表,删除链表的倒数第。个结点,并且返回链表的头结点。

2024-09-29 20:08:16 272

原创 21.合并两个有序链表

新链表是通过拼接给定的两个链表的所有节点组成的。将两个升序链表合并为一个新的。

2024-09-27 21:51:53 267

原创 141.环形链表

指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数。来表示链表尾连接到链表中的位置(索引从 0 开始)。如果链表中有某个节点,可以通过连续跟踪。链表中有一个环,其尾部连接到第二个节点。链表中有一个环,其尾部连接到第一个节点。仅仅是为了标识链表的实际情况。(即,常量)内存解决此问题吗?,判断链表中是否有环。给你一个链表的头节点。

2024-09-25 22:18:41 317

原创 200.岛屿数量

岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。(水)组成的的二维网格,请你计算网格中岛屿的数量。此外,你可以假设该网格的四条边均被水包围。思路1:深度深度优先搜索。

2024-09-18 19:42:42 214

原创 402.移除K位数字

移除掉三个数字 4, 3, 和 2 形成一个新的最小的数字 1219。思路:贪心 + 单调栈,元素依次入栈,保存栈元素单调不降,否则则删除元素。移掉首位的 1 剩下的数字为 200. 注意输出不能有任何前导零。位数字,使得剩下的数字最小。请你以字符串形式返回这个最小的数字。从原数字移除所有的数字,剩余为空就是 0。给你一个以字符串表示的非负整数。

2024-09-16 21:09:32 170

原创 234.回文链表

思路1:复制链表值到数组列表中,使用双索引判断是否是回文数。给你一个单链表的头节点。,请你判断该链表是否为。空间复杂度解决此题?

2024-09-12 21:55:20 220

原创 73.矩阵置零

思路:第一次遍历,使用两个标记数组分别记录每一行和每一列是否有零出现。第二遍历根据标记数组清零。,则将其所在行和列的所有元素都设为。的矩阵,如果一个元素为。

2024-09-11 21:17:46 254

原创 53.最大子数组和

请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。连续子数组 [4,-1,2,1] 的和最大,为 6。是数组中的一个连续部分。

2024-09-10 22:10:18 274

原创 560.和为k的子数组

思路二:前缀和思想,计算每个位置的前缀和,并使用一个哈希表来存储每个前缀和出现的次数。在遍历的过程中,检查是否存在mp[j] - k的前缀和,如果存在,说明从某个位置到当前位置的连续子数组的和为k,将对应的次数累加到结果中。通过遍历一次数组,可以统计出和为k的连续子数组的个数,并且时间复杂度为O(n),其中n为数组的长度。子数组是数组中元素的连续非空序列。

2024-09-05 22:15:56 348

原创 35.搜索插入位置

思路:二分查找,当元素存在返回元素下标,当元素不存在返回left下标,因为最终left=right + 1;left下标元素大于target.给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为。

2024-09-04 21:51:06 416

原创 面试提 16.26 计算器

给定一个包含正整数、加(+)、减(-)、乘(*)、除(/)的算数表达式(括号除外),计算其结果。思路:给减号运算的数加负号压栈,乘法和除法先运算后压栈,得到所有操作都是加法运算,最好累加即可。整数除法仅保留整数部分。表达式仅包含非负整数,

2024-09-03 21:39:57 160

原创 121.买卖股票的最佳时期

在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回。设计一个算法来计算你所能获取的最大利润。在这种情况下, 没有交易完成, 所以最大利润为 0。买入这只股票,并选择在。

2024-08-31 15:47:12 336

原创 70.爬楼梯

思路:爬到第 x 级台阶的方案数是爬到第 x−1 级台阶的方案数和爬到第 x−2 级台阶的方案数的和。因此,f(x)=f(x−1)+f(x−2)你有多少种不同的方法可以爬到楼顶呢?1. 1 阶 + 1 阶 + 1 阶。有两种方法可以爬到楼顶。1. 1 阶 + 1 阶。有三种方法可以爬到楼顶。2. 1 阶 + 2 阶。3. 2 阶 + 1 阶。

2024-08-31 15:22:56 220

原创 3.无重复的最长字串

思路:滑动窗口,当无重复字符时,右下标向前移动,有重复字符时,左下标向前移动。,请你找出其中不含有重复字符的。请注意,你的答案必须是。因为无重复字符的最长子串是。因为无重复字符的最长子串是。因为无重复字符的最长子串是。,所以其长度为 3。,所以其长度为 1。,所以其长度为 3。

2024-08-30 20:07:49 341

原创 136.只出现一次的数字

除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。思路:使用异或运算,相同的数字异或为0,0与数字本身异或等于本身。

2024-08-28 20:01:30 228

原创 225.用队列实现栈

请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(

2024-08-23 21:12:58 247

原创 94.二叉树的中序遍历

递归算法很简单,你可以通过迭代算法完成吗?给定一个二叉树的根节点。

2024-08-23 20:54:53 163

原创 160.相交链表

请注意相交节点的值不为 1,因为在链表 A 和链表 B 之中值为 1 的节点 (A 中第二个节点和 B 中第三个节点) 是不同的节点。换句话说,它们在内存中指向两个不同的位置,而链表 A 和链表 B 中值为 8 的节点 (A 中第三个节点,B 中第四个节点) 在内存中指向相同的位置。思路2:双指针,同时交替遍历headA和headB,因此两个指针的遍历次数一样,当链表较短的遍历指针遍历完后会遍历长链表,长指针遍历完也会遍历短链表,如果存在相交节点则会偶遇,如果没有相交节点则会同时到达链表末尾。

2024-08-20 21:41:19 510

原创 283.移动零

思路:快慢指针如果数组没有0,那么快慢指针始终指向同一个位置,每个位置自己和自己交换;如果数组有0,快指针先走一步,此时慢指针对应的就是0,所以要交换。移动到数组的末尾,同时保持非零元素的相对顺序。,必须在不复制数组的情况下原地对数组进行操作。,编写一个函数将所有。

2024-08-19 21:26:14 155 1

原创 242.有效字母的异位词

思路:使用记录第一个字符串字符出现的次数,然后减去第二个字符串字字符出现的次数,如果数组都为零,则代表两个字符串时是字母异位词。中每个字符出现的次数都相同,则称。,编写一个函数来判断。

2024-05-08 15:17:09 317

原创 142.环形链表||

思路:快慢指针,快指针走两步,慢指针走一步,如果有环一定会相遇,且从头结点出发一个指针,从相遇节点 也出发一个指针,这两个指针每次只走一个节点, 那么当这两个指针相遇的时候就是 环形入口的节点。指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数。如果链表中有某个节点,可以通过连续跟踪。链表中有一个环,其尾部连接到第二个节点。链表中有一个环,其尾部连接到第一个节点。,返回链表开始入环的第一个节点。来表示链表尾连接到链表中的位置(,仅仅是为了标识链表的实际情况。,则在该链表中没有环。

2024-05-07 16:18:34 368

原创 19.删除链表的倒数第N个结点

思路:设置一个快指针一个慢指针,间隔为N,当快指针移动到末尾时,慢指针指向倒数第N个结点。给你一个链表,删除链表的倒数第。个结点,并且返回链表的头结点。你能尝试使用一趟扫描实现吗?

2024-05-07 15:40:48 346 1

原创 24.两两交换链表中的节点

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。

2024-04-20 15:16:24 173

原创 206.反转链表

链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题?,请你反转链表,并返回反转后的链表。

2024-04-15 15:23:23 314

原创 128.最长连续序列

找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为。给定一个未排序的整数数组。

2024-04-10 21:44:25 209

原创 707.设计链表

/ 链表变为 1->2->3。// 现在,链表变为 1->3。以指示链表中的上一个节点。假设链表中的所有节点下标从。你可以选择使用单链表或者双链表,设计并实现自己的链表。是指向下一个节点的指针/引用。如果是双向链表,则还需要属性。

2024-04-10 20:46:13 358

原创 203.移除链表元素

请你删除链表中所有满足。代码二:增加一个虚拟表头。给你一个链表的头节点。代码一:直接操作原链表。

2024-04-09 15:59:06 178

原创 59.螺旋矩阵

所有元素,且元素按顺时针顺序螺旋排列的。思路:使用四个for,螺旋遍历。

2024-04-08 20:09:10 200

原创 209.长度最小的子数组

如果不存在符合条件的子数组,返回。是该条件下的长度最小的子数组。找出该数组中满足其总和大于等于。思路:双指针,使用滑动窗口检测。个正整数的数组和一个正整数。

2024-04-07 21:07:39 144

原创 977.有序数组的平方

平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100]思路:使用头尾双下标,时间复杂度O(n)组成的新数组,要求也按。

2024-04-06 17:19:04 211

原创 27.移除元素

你不需要考虑数组中超出新长度后面的元素。例如,函数返回的新长度为 2 ,而 nums = [2,2,3,3] 或 nums = [2,2,0,0],也会被视作正确答案。你不需要考虑数组中超出新长度后面的元素。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。// 根据你的函数返回的长度, 它会打印出数组中。// 在函数里修改输入数组对于调用者是可见的。为什么返回数值是整数,但输出的答案是数组呢?的元素,并返回移除后数组的新长度。

2024-04-02 19:12:46 405

原创 49.字母异位词分组

思路二:由于互为字母异位词的两个字符串包含的字母相同,因此两个字符串中的相同字母出现的次数一定是相同的,故可以将每个字母出现的次数使用字符串表示,作为哈希表的键。思路:对每个字符串排序,建立map关联容器。使用排序后的字符串当key,排序后一样的字符串放在一起。是由重新排列源单词的所有字母得到的一个新单词。可以按任意顺序返回结果列表。给你一个字符串数组,请你将。

2024-04-01 21:26:34 310

原创 704.二分查找

如果目标值存在返回下标,否则返回。个元素有序的(升序)整型数组。

2024-04-01 16:17:13 212

原创 链表两数相加

你可以假设除了数字 0 之外,这两个数都不会以 0 开头。的链表,表示两个非负的整数。它们每位数字都是按照。请你将两个数相加,并以相同形式返回一个表示和的链表。的方式存储的,并且每个节点只能存储。

2024-03-28 17:18:14 256

原创 14:有效的符号

判断字符串是否有效。

2024-03-27 19:47:58 534

原创 刷题记录:最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串。如果不存在公共前缀,返回空字符串。输入不存在公共前缀。输入不存在公共前缀。

2024-03-26 16:47:51 241

原创 罗马数字转整数

数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。同样地,数字 9 表示为。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做。给定一个罗马数字,将其转换成整数。,即为两个并列的 1。

2024-03-25 21:44:01 936 1

原创 C语言-二叉树的最大深度

链接:https://leetcode.cn/problems/maximum-depth-of-binary-tree。给定二叉树 [3,9,20,null,null,15,7],二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。给定一个二叉树,找出其最大深度。来源:力扣(LeetCode)返回它的最大深度 3。

2022-10-01 23:04:01 798

原创 每日一题:对称二叉树

给你一个二叉树的根节点 root , 检查它是否轴对称。示例 1:输入:root = [1,2,2,3,4,4,3]输出:true示例 2:输入:root = [1,2,2,null,3,null,3]输出:false来源:力扣(LeetCode)链接:https://leetcode.cn/problems/symmetric-tree C语言python...

2022-07-04 22:50:07 259

基于C51单片机的贪吃蛇小游戏

基于C51单片机的贪吃蛇小游戏

2022-05-17

捷联式惯导算法_matlab

捷联式惯导算法_matlab

2022-05-17

STMF411的工程模板

STMF411的工程模板

2022-05-17

空空如也

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

TA关注的人

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