leetcode
今天题目AC了吗.
这个作者很懒,什么都没留下…
展开
-
洛谷 P1506拯救oibh总部 (C++)(BFS)
# 拯救oibh总部## 题目背景oibh 总部突然被水淹没了!现在需要你的救援……## 题目描述oibh 被突来的洪水淹没了,还好 oibh 总部有在某些重要的地方起一些围墙。用 `*` 号表示,而一个四面被围墙围住的区域洪水是进不去的。oibh 总部内部也有许多重要区域,每个重要区域在图中用一个 `0` 表示。现在给出 oibh 的围墙建设图,问有多少个没被洪水淹到的重要区域。## 输入格式第一行为两个正整数 $x,y$。接下来 $x$ 行,每行 $y$ 个整数,由原创 2023-03-09 18:05:12 · 257 阅读 · 0 评论 -
力扣 343.整数拆分(C++)(动态规划)
343.整数拆分给定一个正整数n,将其拆分为 k 个 正整数 的和(k >= 2),并使这些整数的乘积最大化。返回 你可以获得的最大乘积。示例 1:输入: n = 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1。示例2:输入: n = 10输出: 36解释: 10 = 3 + 3 + 4, 3 ×3 ×4 = 36。提示:2原创 2023-03-09 18:00:18 · 30 阅读 · 0 评论 -
力扣416.分割等和子集(C++)(动态规划)
【代码】力扣416.分割等和子集(C++)(动态规划)给你一个 只包含正整数 的 非空 数组nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。示例 1:输入:nums = [1,5,11,5]输出:true解释:数组可以分割成 [1, 5, 5] 和 [11] 。示例 2:输入:nums = [1,2,3,5]输出:false解释:数组不能分割成两个元素和相等的子集。提示:1原创 2023-03-09 17:56:30 · 59 阅读 · 0 评论 -
力扣63.不同路径II(C++)(动态规划)
【代码】力扣63.不同路径II(C++)(动态规划)63. 不同路径 II一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 1 和 0 来表示。 示例 1:输入:obstacleGrid = [[0,0,0],[0,1,0],[0,0,0]]输原创 2023-03-05 17:24:50 · 286 阅读 · 0 评论 -
力扣142.环形链表||(C++)
如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。给定一个链表的头节点 head ,返回链表开始入环的第一个节点。如果链表无环,则返回 null。链表中节点的数目范围在范围 [0, 104] 内。pos 的值为 -1 或者链表中的一个有效索引。142.环形链表||原创 2023-02-09 13:33:36 · 33 阅读 · 0 评论 -
力扣面试题02.07.链表相交(C++)
输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3。输入:intersectVal = 2, listA = [0,9,1,2,4], listB = [3,2,4], skipA = 3, skipB = 1。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]。解释:相交节点的值为 2 (注意,如果两个链表相交则不能为 0)。原创 2023-02-08 16:25:21 · 340 阅读 · 0 评论 -
力扣19.删除链表的倒数第N个结点(C++)
给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。输入:head = [1,2,3,4,5], n = 2。输入:head = [1,2], n = 1。输入:head = [1], n = 1。19.删除链表的倒数第N个结点。来源:力扣(LeetCode)输出:[1,2,3,5]链表中结点的数目为 sz。原创 2023-02-06 16:44:32 · 198 阅读 · 0 评论 -
力扣24.两两交换链表中的节点(C++)
给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。链表中节点的数目在范围 [0, 100] 内。输入:head = [1,2,3,4]来源:力扣(LeetCode)24.两两交换链表中的节点。输入:head = [1]输出:[2,1,4,3]输入:head = []原创 2023-02-06 16:10:08 · 62 阅读 · 0 评论 -
力扣206.反转链表(C++)
链接:https://leetcode.cn/problems/reverse-linked-list。著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。输入:head = [1,2,3,4,5]链表中节点的数目范围是 [0, 5000]输入:head = [1,2]来源:力扣(LeetCode)输出:[5,4,3,2,1]输入:head = []原创 2023-02-06 15:41:17 · 126 阅读 · 0 评论 -
力扣707.设计链表(C++)
addAtIndex(index,val):在链表中的第 index 个节点之前添加值为 val 的节点。如果 index 等于链表的长度,则该节点将附加到链表的末尾。addAtHead(val):在链表的第一个元素之前添加一个值为 val 的节点。deleteAtIndex(index):如果索引 index 有效,则删除链表中的第 index 个节点。get(index):获取链表中第 index 个节点的值。addAtTail(val):将值为 val 的节点追加到链表的最后一个元素。原创 2023-02-06 15:00:15 · 82 阅读 · 0 评论 -
力扣203.移除链表元素(C++)
给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点。链接:https://leetcode.cn/problems/remove-linked-list-elements。输入:head = [1,2,6,3,4,5,6], val = 6。输入:head = [7,7,7,7], val = 7。列表中的节点数目在范围 [0, 104] 内。输入:head = [], val = 1。输出:[1,2,3,4,5]原创 2023-02-03 13:44:21 · 43 阅读 · 0 评论 -
力扣 剑指Offer 29.顺时针打印矩阵(C++)
输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。输出:[1,2,3,4,8,12,11,10,9,5,6,7]输出:[1,2,3,6,9,8,7,4,5]剑指Offer 29.顺时针打印矩阵。来源:力扣(LeetCode)原创 2023-02-01 17:38:36 · 65 阅读 · 0 评论 -
力扣54.螺旋矩阵(C++)
给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]链接:https://leetcode.cn/problems/spiral-matrix。输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]商业转载请联系官方授权,非商业转载请注明出处。输出:[1,2,3,4,8,12,11,10,9,5,6,7]输出:[1,2,3,6,9,8,7,4,5]原创 2023-02-01 17:27:25 · 90 阅读 · 0 评论 -
力扣59.螺旋矩阵(C++)
59.螺旋矩阵【中等】给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix。示例 1:输入:n = 3输出:[[1,2,3],[8,9,4],[7,6,5]]示例 2:输入:n = 1输出:[[1]]提示:来源:力扣(LeetCode)链接:https://leetcode.cn/problems/spiral-matrix-ii著作权归领扣网络所有。原创 2023-02-01 16:04:09 · 66 阅读 · 0 评论 -
力扣904.水果成篮(C++)
你可以选择任意一棵树开始采摘,你必须从 每棵 树(包括开始采摘的树)上 恰好摘一个水果。输入:fruits = [3,3,3,1,2,1,1,2,3,3,4]如果从第一棵树开始采摘,则只能采摘 [0,1] 这两棵树。如果从第一棵树开始采摘,则只能采摘 [1,2] 这两棵树。解释:可以采摘 [1,2,1,1,2] 这五棵树。输入:fruits = [1,2,3,2,2]解释:可以采摘 [2,3,2,2] 这四棵树。输入:fruits = [0,1,2,2]解释:可以采摘 [1,2,2] 这三棵树。原创 2023-02-01 13:59:15 · 89 阅读 · 0 评论 -
力扣29.长度最小的子数组(C++)
找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0。输入:target = 11, nums = [1,1,1,1,1,1,1,1]输入:target = 7, nums = [2,3,1,2,4,3]商业转载请联系官方授权,非商业转载请注明出处。输入:target = 4, nums = [1,4,4]解释:子数组 [4,3] 是该条件下的长度最小的子数组。原创 2023-01-31 10:29:16 · 76 阅读 · 0 评论 -
力扣977.有序数组的平方(C++)
给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。链接:https://leetcode.cn/problems/squares-of-a-sorted-array。解释:平方后,数组变为 [16,1,0,9,100]输入:nums = [-4,-1,0,3,10]输入:nums = [-7,-3,2,3,11]排序后,数组变为 [0,1,9,16,100]输出:[0,1,9,16,100]输出:[4,9,9,49,121]原创 2023-01-30 15:53:32 · 131 阅读 · 0 评论 -
力扣844.比较含退格的字符串(C++)
844.比较含退格的字符串【简单】给定 s 和 t 两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回 true。# 代表退格字符。注意:如果对空文本输入退格字符,文本继续为空。示例 1:输入:s = "ab#c", t = "ad#c"输出:true解释:s 和 t 都会变成 "ac"。示例 2:输入:s = "ab##", t = "c#d#"输出:true解释:s 和 t 都会变成 ""。示例 3:输入:s = "a#c", t = "b"原创 2023-01-30 15:07:49 · 92 阅读 · 0 评论 -
力扣283.移动零(C++)
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。链接:https://leetcode.cn/problems/move-zeroes。著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。请注意 ,必须在不复制数组的情况下原地对数组进行操作。输入: nums = [0,1,0,3,12]输出: [1,3,12,0,0]来源:力扣(LeetCode)输入: nums = [0]原创 2023-01-30 14:42:12 · 107 阅读 · 0 评论 -
力扣26.删除有序数组中的重复项(C++)
给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。解释:函数应该返回新的长度 5 , 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4。解释:函数应该返回新的长度 2 ,并且原数组 nums 的前两个元素被修改为 1, 2。输入:nums = [0,0,1,1,1,2,2,3,3,4]输出:5, nums = [0,1,2,3,4]输出:2, nums = [1,2,_]输入:nums = [1,1,2]原创 2023-01-30 14:27:31 · 70 阅读 · 0 评论 -
力扣27.移除元素(C++)
例如,函数返回的新长度为 2 ,而 nums = [2,2,3,3] 或 nums = [2,2,0,0],也会被视作正确答案。解释:函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。// 根据你的函数返回的长度, 它会打印出数组中 该长度范围内 的所有元素。输入:nums = [0,1,2,2,3,0,4,2], val = 2。元素的顺序可以改变。原创 2023-01-30 14:10:56 · 58 阅读 · 0 评论 -
力扣367.有效的完全平方数(C++)
链接:https://leetcode.cn/problems/valid-perfect-square。如果 num 是一个完全平方数,则返回 true ,否则返回 false。解释:返回 false ,因为 3.742 * 3.742 = 14 但 3.742 不是一个整数。完全平方数 是一个可以写成某个整数的平方的整数。换句话说,它可以写成某个整数和自身的乘积。解释:返回 true ,因为 4 * 4 = 16 且 4 是一个整数。输入:num = 16。输入:num = 14。原创 2023-01-27 15:00:21 · 110 阅读 · 0 评论 -
力扣69.x的平方根(C++)
69.x的平方根给你一个非负整数 x ,计算并返回 x 的 算术平方根。由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去。注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5。示例 1:输入:x = 4输出:2示例 2:输入:x = 8输出:2解释:8 的算术平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。提示:来源:力扣(LeetCode)原创 2023-01-27 14:48:57 · 54 阅读 · 0 评论 -
力扣34.在排序数组中查找元素的第一个和最后一个位置(C++)
给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。输入:nums = [5,7,7,8,8,10], target = 8。输入:nums = [5,7,7,8,8,10], target = 6。商业转载请联系官方授权,非商业转载请注明出处。如果数组中不存在目标值 target,返回 [-1, -1]。输入:nums = [], target = 0。来源:力扣(LeetCode)输出:[-1,-1]输出:[-1,-1]原创 2023-01-27 14:03:21 · 148 阅读 · 0 评论 -
力扣35.搜索插入位置(C++)
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。商业转载请联系官方授权,非商业转载请注明出处。输入: nums = [1,3,5,6], target = 5。输入: nums = [1,3,5,6], target = 2。输入: nums = [1,3,5,6], target = 7。请必须使用时间复杂度为 O(log n) 的算法。nums 为 无重复元素 的 升序 排列数组。来源:力扣(LeetCode)原创 2023-01-27 13:15:21 · 76 阅读 · 0 评论 -
力扣704.二分查找(C++)
704.二分查找【简单】给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例 2:输入: nums = [-1,0,3,5,9,12], target = 2输出: -1解释: 2 不存在 nums 中因此返回 -1。原创 2023-01-26 17:58:53 · 99 阅读 · 0 评论