- 博客(104)
- 收藏
- 关注
原创 LeetCode[中等] 80. 删除有序数组中的重复项 II
给你一个有序数组nums,请你删除重复出现的元素,使得出现次数超过两次的元素,返回删除后数组的新长度。不要使用额外的数组空间,你必须在并在使用 O(1) 额外空间的条件下完成。
2024-10-20 17:57:10 488
原创 LeetCode[简单] 26. 删除有序数组中的重复项
给你一个的数组nums,请你删除重复出现的元素,使每个元素,返回删除后数组的新长度。元素的应该保持。然后返回nums中唯一元素的个数。考虑nums的唯一元素的数量为knumsnumsknumsnumsnumsk。
2024-10-20 16:27:15 389
原创 LeetCode[简单] 70. 爬楼梯
假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬1或2个台阶。你有多少种不同的方法可以爬到楼顶呢?
2024-10-12 14:05:19 267
原创 LeetCode[中等] 763. 划分字母区间
给你一个字符串s。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是s。返回一个表示每个字符串片段的长度的列表。
2024-10-02 12:21:57 465
原创 LeetCode[中等] 45. 跳跃游戏 II
给定一个长度为n的整数数组nums。初始位置为nums[0]。每个元素nums[i]表示从索引i向前跳转的最大长度。换句话说,如果你在nums[i]处,你可以跳转到任意i + j < n返回到达的最小跳跃次数。生成的测试用例可以到达。
2024-10-02 09:48:52 670
原创 LeetCode[中等] 55.跳跃游戏
给你一个非负整数数组nums,你最初位于数组的。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标,如果可以,返回true;否则,返回false。
2024-10-01 19:56:52 414
原创 LeetCode[中等] 279.完全平方
给你一个整数n,返回和为n的完全平方数的最少数量。是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,149和16都是完全平方数,而3和11不是。
2024-10-01 17:59:45 522
原创 LeetCode[中等] 198. 打家劫舍
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,。给定一个代表每个房屋存放金额的非负整数数组,计算你,一夜之内能够偷窃到的最高金额。
2024-09-30 16:51:27 323
原创 LeetCode[中等] 739. 每日温度
给定一个整数数组,表示每天的温度,返回一个数组answer,其中answer[i]是指对于第i天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用0来代替。
2024-09-30 14:51:11 508
原创 LeetCode[中等] 238. 除自身以外数组的乘积
给你一个整数数组nums,返回 数组answer,其中answer[i]等于nums中除nums[i]之外其余各元素的乘积。题目数据数组nums之中任意元素的全部前缀元素和后缀的乘积都在整数范围内。请且在O(n)时间复杂度内完成此题。
2024-09-29 19:35:22 287
原创 LeetCode[中等] 17. 电话号码的字母组合
给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。答案可以按返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
2024-09-28 12:27:03 619
原创 LeetCode[中等] 78.子集
给你一个整数数组nums,数组中的元素。返回该数组所有可能的子集(幂集)。解集包含重复的子集。你可以按返回解集。
2024-09-27 22:02:34 537
原创 LeetCode[简单] 136. 只出现一次的数字
给你一个整数数组nums,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。
2024-09-27 18:36:54 296
原创 LeetCode[中等] 138. 随机链表的复制
给你一个长度为n的链表,每个节点包含一个额外增加的随机指针random,该指针可以指向链表中的任何节点或空节点。构造这个链表的。深拷贝应该正好由n个节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的next指针和random指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。。例如,如果原链表中有X和Y两个节点,其中。那么在复制链表中对应的两个节点x和y,同样有。返回复制链表的头节点。用一个由n个节点组成的链表来表示输入/输出中的链表。
2024-09-27 12:53:11 1139
原创 LeetCode[中等] 24.两两交换链表中的结点
给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。
2024-09-26 21:39:14 273
原创 LeetCode[简单] 876. 链表的中间结点
给你单链表的头结点head,请你找出并返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。
2024-09-25 18:26:07 406
原创 LeetCode[简单] 121.买卖股票的最佳时机
给定一个数组prices,它的第i个元素prices[i]表示一支给定股票第i天的价格。你只能选择买入这只股票,并选择在卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回0。
2024-09-24 08:53:56 244
原创 LeetCode[中等] 394. 字符串解码
给定一个经过编码的字符串,返回它解码后的字符串。编码规则为:,表示其中方括号内部的正好重复k次。注意k保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数k,例如不会出现像3a或2[4]的输入。
2024-09-23 10:31:28 449
原创 LeetCode[中等] 215. 数组中的第 K 个最大元素
给定整数数组nums和整数k,请返回数组中第k个最大的元素。请注意,你需要找的是数组排序后的第k个最大的元素,而不是第k个不同的元素。你必须设计并实现时间复杂度为O(n)的算法解决此问题。思路:基于快排改进的快速选择算法由此可以发现每次经过「划分」操作后,我们一定可以确定一个元素的最终位置,即 x 的最终位置为 q,并且保证 a[l⋯q−1] 中的每个元素小于等于 a[q],且 a[q] 小于等于 a[q+1⋯r] 中的每个元素。
2024-09-21 20:08:25 605
原创 LeetCode[中等] 155. 最小栈
若栈中元素为 b c d,a进栈,则只要a在栈中,b c d 就一定在栈中(a出栈之前,b c d 一定不会出栈),因此,a为栈顶一定对应一个最小元素。操作,并能在常数时间内检索到最小元素的栈。
2024-09-21 14:54:16 345
原创 LeetCode[简单] 20.有效的括号
利用stack的性质,遍历string,遇到左半部分,将相应的右半部分放入栈中。,判断字符串是否有效。
2024-09-21 13:25:46 323
原创 LeetCode[中等]
给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。思路:计算链表长度num,num - n就是需要删去结点的索引其中若删去第一个结点,返回head.next;
2024-09-21 11:27:31 297
原创 LeetCode[中等] 54.螺旋矩阵
给你一个m行n列的矩阵matrix,请按照,返回矩阵中的所有元素。思路:定义方向数组,按照顺时针顺序:右(0,1),下(1,0),左(0,-1),上(0,-1)order。
2024-09-20 10:15:50 435
原创 LeetCode[中等] 142. 环形链表 II
给定一个链表的头节点head,返回链表开始入环的第一个节点。如果链表无环,则返回null。如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数pos来表示链表尾连接到链表中的位置(如果pos是-1,则在该链表中没有环。pos,仅仅是为了标识链表的实际情况。链表。通过上面的推导,我们知道相遇点距环的入口的距离(c)与开头到环的入口的距离(a)相等。
2024-09-19 08:57:00 422
原创 LeetCode[中等] 438. 找到字符串中所有字母异位词
给定两个字符串s和p,找到s中所有p的的子串,返回这些子串的起始索引。不考虑答案输出的顺序。指由相同字母重排列形成的字符串(包括相同的字符串)。思路:滑动窗口。
2024-09-18 14:48:28 1020
原创 LeetCode[简单] 283.移动零
思路:利用快慢指针,快指针遍历数组,慢指针是非零元素索引。移动到数组的末尾,同时保持非零元素的相对顺序。,必须在不复制数组的情况下原地对数组进行操作。,编写一个函数将所有。
2024-09-17 12:01:17 317
原创 LeetCode[中等] 49.字母异位词分组
给你一个字符串数组,请你将组合在一起。可以按任意顺序返回结果列表。是由重新排列源单词的所有字母得到的一个新单词。思路:new Dictionary<string, List<string>>() 存储数据,key为排序之后的字符串对每个字符串进行排序,若是相同,则放进字典的value中str.ToCharArray() 将string转换成字符数组array,用Array.Sort(array),对字符串数组进行排序,最后判断字典中是否有该key,有则存入;没有,则新建一个key,存入。
2024-09-17 11:26:43 514
原创 LeetCode[中等] 3. 无重复字符的最长子串
如果没有重复的,那么right继续向右滑动,并将该字符添加进HashSet中;如果重复了,left向右滑动,并不断将字符移出数组。空间复杂度:O(∣Σ∣),其中 Σ 是字符集。空间复杂度主要取决于哈希集合,哈希集合中每个字符最多出现一次。时间复杂度:O(n),其中 n 是字符串 s 的长度。滑动窗口的左右端点最多各遍历字符串 s 一次。思路:滑动窗口,设置左右指针left与right,maxLength存储长度。利用HashSet性质,存储滑动窗口中的字符。,请你找出其中不含有重复字符的。
2024-09-16 20:15:11 350
原创 CLR via C# chapter5基元类型、引用类型和值类型
2.CLR:公共语言运行时(Common Language Runtime),是一种可由多种编程语言使用的“运行时”,其核心功能为:内存管理、程序集加载、安全性、异常处理和线程同步。3.IL代码(托管代码):中间语言代码,每个面向CLR的编译器生成的都是IL代码。基元类型:编译器直接支持的数据类型,其直接映射到Framework类库(FCL)中存在的类型。4.元数据metadata:一个数据表集合,与包含IL代码的文件关联。eg:C#中的int直接映射到System.Int32类型。
2024-09-16 15:49:53 230
原创 LeetCode[中等] 合并区间
以数组intervals表示若干个区间的集合,其中单个区间为。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。
2024-09-16 15:49:00 510
原创 LeetCode[简单] 141.环形链表
如果链表中存在环,则从快慢指针都进入环到相遇的移动次数不超过环内的结点数,因此总移动次数不超过链表的结点数。空间复杂度:O(n),其中 n 是链表的结点数。需要使用哈希集合存储链表中的全部结点。指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数。时间复杂度:O(n),其中 n 是链表的结点数。链表中的每个结点最多遍历一次。如果链表中没有环,则快指针将到达链表末尾,移动次数不超过链表结点数的一半。来表示链表尾连接到链表中的位置(索引从 0 开始)。,判断链表中是否有环。
2024-09-15 21:27:54 360
原创 LeetCode[简单] 搜索插入位置
在二分查找的过程中,如果 nums[mid] < target,则将 low 更新为 mid + 1,因此在二分查找结束之后有 nums[low] ≥ target。又由于当 nums[mid] ≥ target 时不可能将 low 更新为比 mid 大的值,因此在二分查找结束之后有nums[low−1] < target。因此在二分查找结束之后有 nums[low−1] < target < nums[low],low 即为目标值在数组中的插入位置。唯一需要注意的是,搜索插入位置。思路:类似与二分查找。
2024-09-14 14:21:40 330
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人