- 博客(58)
- 收藏
- 关注
原创 Leetcode52 N 皇后 II
n 皇后问题 研究的是如何将 n 个皇后放置在 n × n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回 n 皇后问题 不同的解决方案的数量。
2023-06-28 16:16:49
207
原创 Leetcode51 N 皇后
每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 'Q' 和 '.' 分别代表了皇后和空位。n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。
2023-06-28 15:45:04
195
原创 LeetCode49 字母异位词分组
给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。字母异位词 是由重新排列源单词的所有字母得到的一个新单词。1、 将每个字符串中的字符排序后作为一个摘要信息来进行归类。
2023-06-27 18:06:10
274
原创 Leetcode48 旋转图像
你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。1、由观察可知,将原图像顺时针选择90度,等价于a、将矩阵沿对角线翻转。b、再将矩阵沿中心轴翻转。给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。b、沿着中心轴翻转之后。a、沿着对角线翻转之后。
2023-06-27 17:04:53
155
原创 leetCode45 跳跃游戏 II
每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。返回到达 nums[n - 1] 的最小跳跃次数。生成的测试用例可以到达 nums[n - 1]。给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。2、从0开始遍历,将下一步每一个可能的位置加入到队列中,加过的位置步重复加入。1、广度优先遍历算法。
2023-06-26 18:10:45
454
原创 Leetcode44 通配符匹配
2、先看basecase grid[0][0] 0行0列的含义是一个空字符串匹配一个空字符串一定是可以匹配成功的,所以该位置必为T。6、如果p中字符是*,则grid[i-1][j-1],grid[i][j-1]和grid[i-1][j]只要有一个匹配得上就行。如果p中的字符是a~z,则必须与s中字符一样才行,并且grid[i-1][j-1]需要匹配得上。4、在来看第一行(除[0][0]位置以外)的含义,用空字符串去匹配一个非空字符串,所以都是F。,则只要grid[i-1][j-1]匹配的上就行。
2023-06-26 17:59:20
254
原创 LeetCode43 题 字符串相乘
给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。注意:不能使用任何内置的 BigInteger 库或直接将输入转换为整数。
2023-06-26 15:38:23
73
原创 Leetcode42 接雨水
1、每个位置能存储多少雨水,取决于他左边和右边的的最大值的最小值和该位置的高度差。2、用两个数组leftMax和rightMax来存左边和右边的最大值。
2023-06-25 17:17:03
123
原创 Leetcode41 缺失的第一个正数
可以看到第一个放错的数字是1位置的4,所以第一个缺失数字是2。,请你找出其中没有出现的最小的正整数。并且只使用常数级别额外空间的解决方案。给你一个未排序的整数数组。因为-1越界,所以也跳过。请你实现时间复杂度为。因为4越界,所以跳过。
2023-06-25 16:12:15
120
原创 LeetCode40 组合总和 II
给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用 一次。注意:解集不能包含重复的组合。
2023-06-25 15:36:25
89
原创 LeetCode 39 组合总和
给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。candidates 中的 同一个 数字可以 无限制重复被选取。如果至少一个数字的被选数量不同,则两种组合是不同的。对于给定的输入,保证和为 target 的不同组合数少于 150 个。
2023-06-16 15:37:17
64
原创 LeetCode38 外观数列
要 描述 一个数字字符串,首先要将字符串分割为 最小 数量的组,每个组都由连续的最多 相同字符 组成。然后对于每个组,先描述字符的数量,然后描述字符,形成一个描述组。要将描述转换为数字字符串,先将每组中的字符数量用数字替换,再将所有描述组连接起来。countAndSay(n) 是对 countAndSay(n-1) 的描述,然后转换成另一个数字字符串。「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。1、按照题目的意思来,上一个数字的结果是下一个数字的参照,循环这个过程。
2023-06-16 15:08:48
68
原创 LeetCode第37题 解数独
数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。数独部分空格内已填入了数字,空白格用 '.' 表示。编写一个程序,通过填充空格来解决数独问题。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。
2023-06-16 14:50:08
111
原创 LeetCode36 有效的数独
所以对每个不为空的数字都检查一遍是否在同一列、同一行、同一宫格内已存在相同的数字。不存在则加入该行、该列、该宫内。请你判断一个 9 x 9 的数独是否有效。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。3、每一个 3x3 的小宫格内1-9都要出现一遍,不能缺失、不能重复。1、每一行1-9都要出现一遍,不能缺失、不能重复。2、每一列1-9都要出现一遍,不能缺失、不能重复。一个有效的数独(部分已被填充)不一定是可解的。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。
2023-06-15 14:49:31
678
原创 LeetCode 35题 搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。
2023-06-14 18:56:02
66
原创 Leetcode 第34 在排序数组中查找元素的第一个和最后一个位置
给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。1、先用二分法找到随意一个=target的位置,如果没有,则返回[-1, -1]你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。如果数组中不存在目标值 target,返回 [-1, -1]。2、从target位置往左扩到第一个不为target的位置。3、从target位置往右扩到第一个不为target的位置。
2023-06-14 17:43:52
30
原创 leetcode第33题搜索旋转排序数组
在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6,7,0,1,2]。3、第2个二分是为了找到从0~拐点之前是否存在target。2、第1个二分是用来找到拐点。
2023-06-14 17:29:34
51
原创 LeetCode32 题最长有效括号
2、我们准备一个空栈,遇到(就压榨,遇到)就弹出,弹出的时候该位置和被弹出的位置全部标成1,这些位置是有效括号的位置。1、看一个比较复杂的例子,我们可以知道如下的括号串的理论上最长有效串是标红部分,也就是长度为8。的字符串,找出最长有效(格式正确且连续)括号子串的长度。3、计算数组的最大连续的累加和即为最终答案。
2023-06-14 15:12:14
67
原创 LeetCode31 题 下一个排列
3、如果我们找到了第一个非降序排列的位置,就把数组分为两部分,【乱序排列】+ 【非升序排列】,在示例中是【6, 3】 + 【7, 5, 4, 3, 2】,将乱序排列中的最后一个数3,和非升序排列中倒数的第一个比他大的位置交换得到【6, 4】 + 【7, 5, 3, 3, 2】例如,arr = [1,2,3] ,以下这些都可以视作 arr 的排列:[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1]。例如,arr = [1,2,3] 的下一个排列是 [1,3,2]。我们想一下是如何得出的。
2023-06-13 15:17:34
513
原创 LeeCode第30题串联所有单词的子串
例如,如果 words = ["ab","cd","ef"], 那么 "abcdef", "abefcd","cdabef", "cdefab","efabcd", 和 "efcdab" 都是串联子串。"acdbef" 不是串联子串,因为他不是任何 words 排列的连接。s 中的 串联子串 是指一个包含 words 中所有字符串以任意顺序排列连接起来的子串。List<Integer> result - 存结果的,存放每个字符串开始的位置。int len - 每一个小串的长度,这里每个小串都是等长的。
2023-06-12 15:18:05
707
原创 LeetCode 25 K 个一组翻转链表reverseKGroup(Java&Python代码)
LeetCode 25 K 个一组翻转链表reverseKGroup(Java&Python代码)
2022-10-17 16:37:32
440
原创 LeetCode 第21题目 合并两个有序链表(附java和python代码)
LeetCode 第21题目 合并两个有序链表(附java和python代码)
2022-10-09 20:00:00
86
原创 LeetCode 第23题 合并K个升序链表(附java和python代码)
LeetCode 第23题 合并K个升序链表(附java和python代码)
2022-10-09 16:00:11
247
原创 LeetCode 第19题 删除链表的倒数第 N 个结点(附java和python代码)
LeetCode 第19题 删除链表的倒数第 N 个结点(附java和python代码)
2022-10-08 16:37:00
177
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人