自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 leetcode练习 编辑距离

例:取word1中的hor字段和word2的r字段,我们只需要删除ho即可,如果我们把dp表列出来的话,会发现减这个动作对应的是dp[i][j]=dp[i-1][j-1],增对应的是dp[i-1][j],改对应dp[i][j-1],而在代码中为,我们只需完成取他们三个的最小值即可。思路:采用动态规划,当我们要把word1[0..i]转化成word2[0..j]时,如果将word1[0..i-1]转化到word[0..j-1]需要k步,那么在转化最后一个字符时,如果相等则步数不变否则加1。

2024-09-05 20:01:05 176

原创 leetcode练习 不同路径ll

思路:使用动态规划,关系为dp[i][j]=dp[i-1][j]+dp[i][j-1],在有障碍物的位置,dp[i][j]=0即可。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格的左上角 (起始点在下图中标记为 “Start” )。1. 向右 -> 向右 -> 向下 -> 向下。2. 向下 -> 向下 -> 向右 -> 向右。3x3 网格的正中间有一个障碍物。网格中的障碍物和空位置分别用。从左上角到右下角一共有。

2024-09-03 22:18:52 291

原创 leetcode练习 n后问题

思路:回溯法解决n后问题,在本问题中,我们定义一个函数判断这个位置的皇后是否满足,定义is_valid函数,其中我们分别遍历45度,列和135度的方向上是否有皇后,有则返回bool,否则返回true,至于为何我们不判断行方向的皇后,是因为我们在回溯时,当一个行的位置上放了一个皇后,那么直接跳到下一行放皇后,所以不需要担心行方向上有多个皇后。按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。的棋盘上,并且使皇后彼此之间不能相互攻击。如上图所示,4 皇后问题存在两个不同的解法。

2024-09-02 20:32:44 240

原创 leetcode练习 不同路径

机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。思路:动态规划,每一个台阶的方法数都等于左边和上边方块的方法之和。网格的左上角 (起始点在下图中标记为 “Start” )。从左上角开始,总共有 3 条路径可以到达右下角。1. 向右 -> 向下 -> 向下。2. 向下 -> 向下 -> 向右。3. 向下 -> 向右 -> 向下。问总共有多少条不同的路径?

2024-08-31 22:55:22 290

原创 leetcode练习 旋转链表

旋转链表,将链表每个节点向右移动。给你一个链表的头节点。

2024-08-30 22:53:48 250

原创 leetcode练习 最后一个单词的长度

记录本题的主要原因是&&符号的使用,在本题中有语句while(n>=0&&s[n]!=' '),这样写的细节在于当n<0时,&&后边的语句不会执行,因此不会造成越界访问。在其他地方应用时也可以像这样写以避免访问错误。,由若干单词组成,单词前后用一些空格字符隔开。最后一个单词是长度为 6 的“joyboy”。是指仅由字母组成、不包含任何空格字符的最大。最后一个单词是“World”,长度为 5。最后一个单词是“moon”,长度为 4。

2024-08-30 22:50:20 214

原创 leetcode练习 最大子数组和

动态规划,dp[i]=(dp[i-1]>0?dp[i-1]:0) +nums[i],请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。连续子数组 [4,-1,2,1] 的和最大,为 6。是数组中的一个连续部分。

2024-08-27 20:45:59 132

原创 leetcode练习 全排列II

在之前那个全排列的基础上加上一个判断条件。给定一个可包含重复数字的序列。返回所有不重复的全排列。

2024-08-26 16:40:08 188

原创 leetcode练习 跳跃游戏II

从下标为 0 跳到下标为 1 的位置,跳。一个简单的动态规划,但时间和空间上都有很大的改进空间。向前跳转的最大长度。生成的测试用例可以到达。跳到最后一个位置的最小跳跃数是。步到达数组的最后一个位置。处,你可以跳转到任意。

2024-08-26 15:58:56 117

原创 leetcode练习 接雨水

有两种方法:我们分别从前和后两个方向遍历数组,分别得到每一个位置的前后缀,我们知道一个木桶能够装水的容量取决于短的那块板,因此得到一个前缀数组和一个后缀数组后,我们就能通过比较得到每一个位置的装水容量大小,关于如何得到这个前后缀数组,我们遍历数组时通过更新最大长度可以得到前后缀,因为这个木桶能装水的多少不会比这个最大值还要大,一个桶溢出,水会流向更别的桶,只要这个桶的板子够长,因此我们取最大值。本题根据B站up主:灵茶山艾府 思路解题。我们把每一个格都看作一个单独的桶。个非负整数表示每个宽度为。

2024-08-26 14:56:09 271

原创 leetcode练习 全排列

给定一个不含重复数字的数组。

2024-08-21 19:42:10 182

原创 leetcode练习 组合总和

2 和 3 可以形成一组候选,2 + 2 + 3 = 7。注意 2 可以使用多次。如果至少一个数字的被选数量不同,则两种组合是不同的。7 也是一个候选, 7 = 7。,并以列表形式返回。中可以使数字和为目标数。对于给定的输入,保证和为。

2024-08-20 22:20:31 225

原创 leetcode练习 外观数列

(RLE)是一种字符串压缩方法,其工作原理是通过将连续相同字符(重复两次或更多次)替换为字符重复次数(运行长度)和字符的串联。countAndSay(4) = "21" 的行程长度编码 = "1211"countAndSay(3) = "11" 的行程长度编码 = "21"countAndSay(2) = "1" 的行程长度编码 = "11"因此压缩后字符串变为。

2024-08-18 22:01:39 225

原创 leetcode练习 在排序数组中查找元素的第一个和最后一个位置

思路:采用二分法寻找目标值,如果找得到的话,将left和right的值更新为mid分别向左和向右寻找开头和结尾。请你找出给定目标值在数组中的开始位置和结束位置。给你一个按照非递减顺序排列的整数数组。你必须设计并实现时间复杂度为。如果数组中不存在目标值。

2024-08-18 21:05:55 138

原创 leetcode练习 最长有效括号

条件为:遍历字符串,当字符为"("时,入栈,当为")"时判断栈是否为空,如果为空的话,说明这个位置不匹配,该位置的长度一定为0,dp[i+1]=0。如果栈不为空的话,那么将栈顶出栈,现在这个右括号的长度为栈顶元素的dp[j]+i-j+1(但是一般来说,dp[j]应该都是0吧,中间是断的不可能再加)的字符串,找出最长有效(格式正确且连续)括号。未能找到别的解决办法,遂改为+1.最长有效括号子串是 "()()"最长有效括号子串是 "()"

2024-08-17 22:11:08 107

原创 leetcode练习 下一个排列

就是在这个有序容器中排在它后面的那个排列。如果不存在下一个更大的排列,那么这个数组必须重排为字典序最小的排列(即,其元素按升序排列)。是指其整数的下一个字典序更大的排列。更正式地,如果数组的所有排列根据其字典顺序从小到大排列在一个容器中,那么数组的。也可以使用函数next_permutation函数解决。就是将其所有成员以序列或线性顺序排列。修改,只允许使用额外常数空间。

2024-08-16 23:01:24 615

原创 leetcode练习 删除重复元素

思路:定义一个变量初值为0,当找到一个元素不同于前边的元素时,将其保存到原数组,同时计数器加1.int[] expectedNums = [...];// 长度正确的期望答案。如果所有断言都通过,那么您的题解将被。,返回删除后数组的新长度。删除重复出现的元素,使每个元素。

2024-08-15 22:02:22 140

原创 leetcode练习 最长回文串

思路:本题可以使用动态规划来解决,一个回文串去掉其左右两侧相同的长度仍然是一个回文串。"aba" 同样是符合题意的答案。

2024-08-15 21:58:37 137

原创 leetcode习题 19、删除倒数第n个节点

本题可以使用快慢节点,定义两个指向head的变量,快节点先走n-1次到要删除的前置节点,然后快慢节点一起走,快节点到尾部时就可以用慢节点定位了。给你一个链表,删除链表的倒数第。个结点,并且返回链表的头结点。

2024-08-14 22:43:38 199

原创 力扣leetcode 23、合并k个升序链表

输入:lists = [[1,4,5],[1,3,4],[2,6]]请你将所有链表合并到一个升序链表中,返回合并后的链表。给你一个链表数组,每个链表都已经按升序排列。输出:[1,1,2,3,4,4,5,6]将它们合并到一个有序链表中得到。输入:lists = [[]]输入:lists = []

2024-08-14 22:22:19 190

原创 力扣leetcode练习 22.括号生成

代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且。剪枝条件:右括号个数大于左括号。

2024-08-13 22:24:48 188

原创 哈夫曼树

首先对给出的数据进行排序,接着我们拿出最小的两个数据构成二叉树,该二叉树的根节点是这两个节点的和,同时将本次得到的和放入之前的数据中重新进行排序,再重复上述步骤得到哈夫曼树。首先对给出的数据进行排序,接着我们拿出最小的两个数据构成二叉树,该二叉树的根节点是这两个节点的和,同时将本次得到的和放入之前的数据中重新进行排序,再重复上述步骤得到哈夫曼树。权值越大的节点越靠近根节点,权值越小的越远离根节点。权值越大的节点越靠近根节点,权值越小的越远离根节点。

2023-11-26 17:50:53 410 1

原创 二叉树的层次输出

思路:首先我们创建一个带有“#”的二叉树的,接着我们在结构体中加入一个记录层数的变量,这样在建树的过程中直接给出深度。这时,我们可以利用几种遍历中的层次遍历,因为这种方式是以根节点----》左子树----〉右子树的方式遍历的,以此来标记出子树存在情况,并在之后遍历时按照要求输出即可。每个节点单独占一行,根节点为第0层,每i层多输出2*i个空格后再输出节点。如果一个节点只有一个子节点,则另一个空的子节点需要输出#用二叉树的带虚结点表示的前序遍历序可以唯一的确定一棵二叉树,请编程构造二叉树并按照要求输出。

2023-11-12 21:16:54 399 1

原创 数列求和

【代码】数列求和。

2023-09-09 20:59:13 43

原创 C语言(基础学习)

char 字符数据类型 1个字节short 短整型 2个字节int 整型 4个字节long 长整型 4个字节long long 更长的整型 8个字节float 单精度浮点数 4个字节double 双精度浮点数 8个字节(在C语言中,sizeof(long)>=sizeof(int))

2023-09-09 20:55:20 44

空空如也

空空如也

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

TA关注的人

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