自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 200.岛屿数量

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

2024-09-18 19:42:42 157

原创 402.移除K位数字

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

2024-09-16 21:09:32 126

原创 234.回文链表

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

2024-09-12 21:55:20 186

原创 73.矩阵置零

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

2024-09-11 21:17:46 201

原创 53.最大子数组和

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

2024-09-10 22:10:18 252

原创 560.和为k的子数组

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

2024-09-05 22:15:56 313

原创 35.搜索插入位置

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

2024-09-04 21:51:06 378

原创 面试提 16.26 计算器

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

2024-09-03 21:39:57 123

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

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

2024-08-31 15:47:12 306

原创 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 200

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

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

2024-08-30 20:07:49 314

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

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

2024-08-28 20:01:30 200

原创 225.用队列实现栈

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

2024-08-23 21:12:58 230

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

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

2024-08-23 20:54:53 129

原创 160.相交链表

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

2024-08-20 21:41:19 492

原创 283.移动零

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

2024-08-19 21:26:14 124

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

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

2024-05-08 15:17:09 306

原创 142.环形链表||

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

2024-05-07 16:18:34 355

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

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

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

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

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

2024-04-20 15:16:24 160

原创 206.反转链表

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

2024-04-15 15:23:23 303

原创 128.最长连续序列

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

2024-04-10 21:44:25 198

原创 707.设计链表

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

2024-04-10 20:46:13 349

原创 203.移除链表元素

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

2024-04-09 15:59:06 166

原创 59.螺旋矩阵

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

2024-04-08 20:09:10 189

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

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

2024-04-07 21:07:39 129

原创 977.有序数组的平方

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

2024-04-06 17:19:04 201

原创 27.移除元素

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

2024-04-02 19:12:46 399

原创 49.字母异位词分组

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

2024-04-01 21:26:34 295

原创 704.二分查找

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

2024-04-01 16:17:13 205

原创 链表两数相加

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

2024-03-28 17:18:14 248

原创 14:有效的符号

判断字符串是否有效。

2024-03-27 19:47:58 459

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

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

2024-03-26 16:47:51 187

原创 罗马数字转整数

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

2024-03-25 21:44:01 897

原创 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 745 1

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

给你一个二叉树的根节点 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 236

原创 每日一题:相同的树

给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入:p = [1,2,3], q = [1,2,3]输出:true示例 2:输入:p = [1,2], q = [1,null,2]输出:false示例 3:输入:p = [1,2,1], q = [1,1,2]输出:false来源:力扣(LeetCode)链接:https://leetcode.cn/problems/same-tree

2022-07-03 22:28:53 380

原创 每日一题:二叉树的中序遍历

给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。示例 1:输入:root = [1,null,2,3]输出:[1,3,2]示例 2:输入:root = []输出:[]示例 3:输入:root = [1]输出:[1]来源:力扣(LeetCode)链接:https://leetcode.cn/problems/binary-tree-inorder-traversal 思路:求出二叉树长度,再进行中序遍历 python...

2022-07-01 23:18:04 178

原创 每日一题:合并两个有序数组

给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。示例 1:输入:nums1 = [1,2,3,0,0,0]

2022-07-01 09:58:33 120

原创 每天一题:删除排序链表中的重复元素

给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。示例 1:输入:head = [1,1,2]输出:[1,2]示例 2:输入:head = [1,1,2,3,3]输出:[1,2,3]来源:力扣(LeetCode)链接:https://leetcode.cn/problems/remove-duplicates-from-sorted-list 思路:循环遍历链表,删除重复元素,并释放空间......

2022-06-29 23:32:19 1603

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

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

2022-05-17

捷联式惯导算法_matlab

捷联式惯导算法_matlab

2022-05-17

STMF411的工程模板

STMF411的工程模板

2022-05-17

空空如也

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

TA关注的人

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