- 博客(62)
- 收藏
- 关注
原创 01背包入门练习题
小明是一位科学家,他需要参加一场重要的国际科学大会,以展示自己的最新研究成果。他需要带一些研究材料,但是他的行李箱空间有限。这些研究材料包括实验设备、文献资料和实验样本等等,它们各自占据不同的空间,并且具有不同的价值。小明的行李空间为 N,问小明应该如何抉择,才能携带最大价值的研究材料,每种研究材料只能选择一次,并且只有选与不选两种选择,不能进行切割。
2025-03-21 09:58:52
216
原创 杨辉三角Ⅱ 力扣119
给定一个非负索引rowIndex,返回「杨辉三角」的第rowIndex行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。
2025-03-20 10:53:27
361
原创 杨辉三角 力扣118
给定一个非负整数 numRows生成「杨辉三角」的前 numRows行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。[[1]]
2025-03-20 10:25:12
258
原创 将有序数组转换为二叉搜索树 力扣108
给你一个整数数组nums,其中元素已经按排列,请你将其转换为一棵 平衡 二叉搜索树。[0,-10,5,null,-3,null,9] 也将被视为正确答案:[3,1][1,null,3] 和 [3,1] 都是高度平衡二叉搜索树。
2025-03-20 10:04:59
217
原创 寻找数组的中心下标(两种方法) 力扣724
给你一个整数数组nums,请计算数组的。数组是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。如果中心下标位于数组最左端,那么左侧数之和视为0,因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适用。如果数组有多个中心下标,应该返回的那一个。如果数组不存在中心下标,返回-1。3中心下标是 3。左侧数之和 sum = nums[0] + nums[1] + nums[2] = 1 + 7 + 3 = 11 ,
2025-03-17 11:27:12
458
原创 有效的山脉数组 力扣941
给定一个整数数组arr,如果它是有效的山脉数组就返回true,否则返回false。让我们回顾一下,如果arrifalsefalsetrue。
2025-03-16 11:09:45
332
原创 有多少小于当前数字的数字 力扣1365
给你一个数组nums,对于其中每个元素nums[i],请你统计数组中比它小的所有数字的数目。换而言之,对于每个nums[i]你必须计算出有效的j的数量,其中j满足j!= i。以数组形式返回答案。对于 nums[0]=8 存在四个比它小的数字:(1,2,2 和 3)。对于 nums[1]=1 不存在比它小的数字。对于 nums[2]=2 存在一个比它小的数字:(1)。对于 nums[3]=2 存在一个比它小的数字:(1)。对于 nums[4]=3 存在三个比它小的数字:(1,2 和 2)。
2025-03-16 10:52:37
203
原创 二叉树的层平均值 力扣637
给定一个非空二叉树的根节点root, 以数组的形式返回每一层节点的平均值。与实际答案相差10-5以内的答案可以被接受。第 0 层的平均值为 3,第 1 层的平均值为 14.5,第 2 层的平均值为 11。因此返回 [3, 14.5, 11]。[1, 104]
2025-03-12 14:52:22
255
原创 二叉树的层序遍历 力扣102
层序遍历是一种经典的二叉树遍历方法,通常使用队列来实现。具体步骤如下:将根节点加入队列。开始循环处理:从队列中取出一个节点进行访问。如果该节点有左子节点,则将左子节点入队。如果该节点有右子节点,则将右子节点入队。重复上述过程直到队列为空。这样可以确保每一层的节点按顺序被访问,并且其子节点依次加入队列等待后续处理。
2025-03-12 14:07:17
697
原创 前k个高频元素 力扣347
可以想到用map集合存储每个元素以及其出现的次数,但是如何将其进行排序找到前k个高频元素呢?,将map键值对一个个存入到大根堆里,按照value值降序排序。最后取出前k个元素就可以了。
2025-03-11 14:02:48
202
原创 逆波兰表达式求值 力扣150
后缀转中缀用栈解决,具体思路:遇到数字就入栈,遇到符号就取出栈顶的两个元素进行运算,将结果再入栈,最后栈顶元素就是结果。
2025-03-11 10:22:49
220
原创 有效的括号 力扣20
这题算是栈的经典应用。主要有三种情况:第一种情况:已经遍历完了字符串,但是栈不为空,说明有相应的左括号没有右括号来匹配,所以return false第二种情况:遍历字符串匹配的过程中,发现栈里没有要匹配的字符。所以return false第三种情况:遍历字符串匹配的过程中,栈已经为空了,没有匹配的字符了,说明右括号没有找到对应的左括号return false。
2025-03-11 09:51:13
1170
原创 三数之和 力扣15
这题难度太大了!最麻烦的就是三元组不能重复。这里采取了代码随想录的解法,具体可去代码随想录理解思路,代码中我加入了个人注释,有错误请纠正!
2025-03-09 14:14:39
213
原创 赎金信 力扣383
3.遍历 magazine 字符串,对于每个字符,检查其在数组中的索引位置是否大于0(即该字符在 ransomNote 中出现过)。如果是,则将对应位置的值减1。4.最后遍历字符频率数组 arr,如果所有位置的值都为0,说明 magazine 中的字符足够构成 ransomNote,返回 true;否则返回 false。数组索引0对应字母'a',索引1对应'b',以此类推。2.遍历 ransomNote 字符串,对于每个字符,计算其在数组中的索引(即 char - 'a'),并将对应位置的值加1。
2025-03-09 10:50:00
210
原创 两数之和 力扣1
给定一个整数数组nums和一个整数目标值target,请你在该数组中找出target的那整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。你可以按任意顺序返回答案。[0,1]因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。[1,2][0,1]
2025-03-09 09:29:09
287
原创 比较含退格的字符串 力扣844
给定s和t两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回true。代表退格字符。如果对空文本输入退格字符,文本继续为空。trues 和 t 都会变成 "ac"。trues 和 t 都会变成 ""。falses 会变成 "c",但 t 仍然是 "b"。
2025-03-06 11:21:56
402
原创 在排序数组中查找元素的第一个和最后一个位置 力扣34
给你一个按照非递减顺序排列的整数数组nums,和一个目标值target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值target,返回[-1, -1]。你必须设计并实现时间复杂度为O(log n)的算法解决此问题。
2025-03-06 10:05:32
176
原创 反转字符串中的单词 力扣151
给你一个字符串s,请你反转字符串中的顺序。是由非空格字符组成的字符串。s中使用至少一个空格将字符串中的分隔开。返回顺序颠倒且之间用单个空格连接的结果字符串。输入字符串s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。反转后的字符串中不能存在前导空格和尾随空格。如果两个单词间有多余的空格,反转后的字符串需要将单词间的空格减少到仅有一个。
2025-03-05 17:54:52
924
原创 设计链表 力扣707
你可以选择使用单链表或者双链表,设计并实现自己的链表。val和next。val是当前节点的值,next是指向下一个节点的指针/引用。如果是双向链表,则还需要属性prev以指示链表中的上一个节点。假设链表中的所有节点下标从开始。实现index-1valvalvalindexindexindexindex// 链表变为 1->2->3// 返回 2// 现在,链表变为 1->3// 返回 3。
2025-03-02 10:28:37
316
原创 长度最小的子数组 力扣209
给定一个含有n个正整数的数组和一个正整数target找出该数组中满足其总和大于等于target的长度最小的,并返回其长度如果不存在符合条件的子数组,返回0。2子数组[4,3]是该条件下的长度最小的子数组。10。
2025-02-27 14:17:20
302
原创 部分注解的作用
RestController相当于@Controller+@ResponseBody两个注解的结合,返回json数据不需要在方法前面加@ResponseBody注解了,但使用@RestController这个注解,就。一个完整的请求路径,应该是类上的 @RequestMapping 的value属性 + 方法上的 @RequestMapping的value属性。@Value注解通常用于外部配置的属性注入,具体用法为: @Value("${配置文件中的key}"),并对它们进行处理。
2024-02-01 14:19:33
824
原创 最小覆盖字串(滑动窗口)
当这个窗口包含的元素满足条件,即包含字符串T的所有元素,记录下这个滑动窗口的长度j-i+1,这些长度中的最小值就是要求的结果。滑动窗口扩展或者收缩的时候,去更新这个need字典,例如当滑动窗口包含某个元素,我们就让need中这个元素的数量减1,代表所需元素减少了1个;我们用一个字典need来表示当前滑动窗口中需要的各元素的数量,一开始滑动窗口为空,用t中各元素来初始化这个need,当。不断增加i使滑动窗口缩小,因为是要求最小字串,所以将不必要的元素排除在外,使长度减小,直到碰到一个必须包含的元素,
2023-11-25 17:55:49
453
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人