- 博客(28)
- 收藏
- 关注
原创 力扣 347.前k个高频元素
给你一个整数数组nums和一个整数k,请你返回其中出现频率前k高的元素。你可以按返回答案。[1,2][1]k你所设计算法的时间复杂度优于O(n log n),其中n是数组大小。
2025-03-16 23:10:54
120
原创 力扣 560.和为K的子数组
给你一个整数数组nums和一个整数k,请你统计并返回该数组中和为k的子数组的个数。子数组是数组中元素的连续非空序列。22。
2025-02-18 21:59:36
318
原创 力扣 438.找到字符串中所有字母异位词
给定两个字符串s和p,找到s中所有p的的子串,返回这些子串的起始索引。不考虑答案输出的顺序。[0,6]起始索引等于 0 的子串是 "cba", 它是 "abc" 的异位词。起始索引等于 6 的子串是 "bac", 它是 "abc" 的异位词。[0,1,2]起始索引等于 0 的子串是 "ab", 它是 "ab" 的异位词。起始索引等于 1 的子串是 "ba", 它是 "ab" 的异位词。起始索引等于 2 的子串是 "ab", 它是 "ab" 的异位词。
2025-02-16 22:35:38
468
原创 力扣 15.三数之和
给你一个整数数组nums,判断是否存在三元组满足i!= ji!= k且j!= k,同时还满足。请你返回所有和为0且不重复的三元组。答案中不可以包含重复的三元组。不同的三元组是 [-1,0,1] 和 [-1,-1,2]。注意,输出的顺序和三元组的顺序并不重要。[]唯一可能的三元组和不为 0。[[0,0,0]]唯一可能的三元组和为 0。
2025-02-12 22:26:39
276
原创 力扣 279.完全平方数
和零钱兑换一样,是典型的背包问题,但是和零钱兑换不同的点在于,物品价值项的数量和背包大小有关。所以需要先找出1-n之间的平方数,用数组来存储,数组下标表示值,数组元素由0或1构成。接着从1开始,一直到n,找出构成每个数值的最小平方数数量。每个数值的所需要的最小平方数数量(当前状态),取决于选择的平方数及前一个状态,由此可得状态方程:dp[j]=min(dp[j],dp[i-k]+1)是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。的完全平方数的最少数量。
2025-01-12 22:10:44
232
原创 力扣1325.删除给定值的叶子节点
上面左边的图中,绿色节点为叶子节点,且它们的值与 target 相同(同为 2 ),它们会被删除,得到中间的图。有一个新的节点变成了叶子节点且它的值与 target 相同,所以将再次进行删除,从而得到最右边的图。的叶子节点,它的父节点就可能变成叶子节点;如果新叶子节点的值恰好也是。也就是说,你需要重复此过程直到不能继续删除。每一步都删除一个绿色的叶子节点(值为 2)。,那么这个节点也应该被删除。为根的二叉树和一个整数。
2025-01-06 22:28:22
216
原创 力扣 64.最小路径
给定一个包含非负整数的m x n网格grid,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。每次只能向下或者向右移动一步。7因为路径 1→3→1→1→1 的总和最小。12行遍历,遍历的同时记录从起点到目前位置的最短距离。题目规定只能向下或向右移动,那么到目前这个位置,是从上面的元素或左边的元素过来,选取距离最小的一个即可。当此元素有上边界或左边界是,只能选择另外一个方向的元素。
2025-01-05 21:34:23
176
原创 力扣 74.搜索二维矩阵
观察矩阵,可以发现每行第一个元素是该行最小元素,所以可以在第一列中查找最后一个小于等于该目标值的元素,然后在该元素的所在行进行二分查找,缩小了查找范围。暴力,先遍历一遍二维矩阵,将元素存入一维数组中,然后对一维数组二分查找。给你一个满足下述两条属性的。
2025-01-02 23:01:53
256
原创 力扣.739每日温度
可以借鉴滑动窗口存储几个大值的方法。开辟一个栈,存储元素在容器中的下标。遍历容器元素,如果栈空,则把当前元素下标压入,如果栈非空,则比较栈对应容器的元素值和当前值的大小。如果当前值小于栈顶,那么就把当前值压入栈,继续向后遍历,直到遇到第一个比它大的元素,该元素值的下标减去栈顶元素,就是栈顶元素对应的容器值到此比它大的值的距离。更新栈顶,直到栈空或者栈顶元素比该值大,该值入栈,重复上述步骤。天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用。,表示每天的温度,返回一个数组。
2024-12-14 21:35:54
268
原创 力扣 994.腐烂橘子
在给定的m x n网格grid012每分钟,腐烂的橘子的新鲜橘子都会腐烂。返回直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回-1。4-1左下角的橘子(第 2 行, 第 0 列)永远不会腐烂,因为腐烂只会发生在 4 个方向上。0因为 0 分钟时已经没有新鲜橘子了,所以答案就是 0。012分析:和求岛屿数量类似。但是和求岛屿数量不同的点在于,岛屿数量可以从任意一个点开始BFS搜索。由于此题目要求需要求出分钟数,所以必须先遍历邻接矩阵,找出所有的腐烂橘子,并入队。
2024-12-13 20:14:03
361
原创 力扣 200.岛屿数量
给你一个由'1'(陆地)和'0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。
2024-12-11 22:53:20
163
原创 力扣 128.最长连续子序列
给定一个未排序的整数数组nums,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为O(n)的算法解决此问题。4最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。9。
2024-12-09 23:26:04
268
原创 力扣 230.二叉搜索树中第K小的元素
分析给定一个二叉搜索树的根节点root,和一个整数k,请你设计一个算法查找其中第k小的元素(从 1 开始计数)。13n。
2024-11-25 10:40:32
275
原创 力扣 98.验证二叉搜索树
给你一个二叉树的根节点root,判断其是否是一个有效的二叉搜索树。子树truefalse根节点的值是 5 ,但是右子节点的值是 4[1, 104]我们需要一个容器装中序遍历的节点值,遍历结束之后对这些值的递增性进行验证,最后返回结果。
2024-11-23 12:12:52
145
原创 力扣 118.杨辉三角
给定一个非负整数 numRows生成「杨辉三角」的前 numRows行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。[[1]]
2024-11-19 21:18:25
232
原创 力扣 392.判断子序列(DP解法)
给定字符串和,判断是否为的子序列。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。如果有大量输入的 S,称作 S1, S2, ... , Sk 其中 k >= 10亿,你需要依次检查它们是否为 T 的子序列。在这种情况下,你会怎样改变代码?添加此问题并且创建所有测试用例。truefalsef。
2024-11-19 11:43:22
459
原创 力扣 198.打家劫舍
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,。给定一个代表每个房屋存放金额的非负整数数组,计算你,一夜之内能够偷窃到的最高金额。[1,2,3,1]4偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高金额 = 1 + 3 = 4。12偷窃 1 号房屋 (金额 = 2), 偷窃 3 号房屋 (金额 = 9),接着偷窃 5 号房屋 (金额 = 1)。
2024-11-18 23:34:28
221
原创 力扣 207.课程表
你这个学期必须选修numCourses门课程,记为0到。在选修某些课程之前需要一些先修课程。先修课程按数组给出,其中,表示如果要学习课程ai则先学习课程bi。[0, 1]01请你判断是否可能完成所有课程的学习?如果可以,返回true;否则,返回false。true总共有 2 门课程。学习课程 1 之前,你需要完成课程 0。这是可能的。false总共有 2 门课程。学习课程 1 之前,你需要先完成课程 0;并且学习课程 0 之前,你还应先完成课程 1。这是不可能的。
2024-11-18 23:23:41
489
原创 力扣 112.路径总和
给你二叉树的根节点root和一个表示目标和的整数targetSum。判断该树中是否存在的路径,这条路径上所有节点值相加等于目标和targetSum。如果存在,返回true;否则,返回false。是指没有子节点的节点。true等于目标和的根节点到叶节点路径如上图所示。false树中存在两条根节点到叶子节点的路径:(1 --> 2): 和为 3(1 --> 3): 和为 4不存在 sum = 5 的根节点到叶子节点的路径。false由于树是空的,所以不存在根节点到叶子节点的路径。
2024-11-17 17:23:19
263
原创 力扣 101.对称二叉树
1、递归时,需要两个指针以对称的形式向下走,这样才能保证指向的节点时是能进行对称判断的。实现方法就是指针1往左走,指针2就固定往右走。指针1往右走,指针2就固定往左走。2、递归思想:以值为1的节点为例,它只需要得到它的左右子树对称情况即可。同理,它的孩子节点也只需要得到它孩子节点的对称情况即可。3、返回条件:(1)当两个指针指向的情况为空时,也是一种对称,返回true。(2)当两个指针其中一个为空时,肯定是不对称的,返回false。
2024-11-16 20:56:40
355
1
原创 LCR 244.翻转二叉树
我们先来看以5为父节点下的两个孩子节点反转:翻转实际上是节点的翻转,翻转值为9、7的两个节点,其子树也跟着父节点过去。那么再处理值为9或7的孩子节点时,翻转的方法和5一样。那么使用递归时的结束条件是什么呢?从这张图中不难看出,当当前处理的节点为空时,表明该处理节点不是一个有效节点,且其更没有左右子树,就可以返回了。
2024-11-16 19:21:02
342
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人