LeetCode
文章平均质量分 55
WilliamX2020
这个作者很懒,什么都没留下…
展开
-
LeetCode-0011盛最多水的容器
给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。示例 1:输入:[1,8,6,2,5,4,8,3,7]输出:49解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。示例 2:输入:height原创 2021-08-10 23:25:47 · 241 阅读 · 0 评论 -
LeetCode刷题-相似字符串组
839. 相似字符串组来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/similar-string-groups问题描述:如果交换字符串 X 中的两个不同位置的字母,使得它和字符串 Y 相等,那么称 X 和 Y 两个字符串相似。如果这两个字符串本身是相等的,那它们也是相似的。例如,“tars” 和 “rats” 是相似的 (交换 0 与 2 的位置); “rats” 和 “arts” 也是相似的,但是 “star” 不与 “tars”,“rat原创 2021-01-31 19:57:35 · 308 阅读 · 0 评论 -
LeetCode刷题-k个一组翻转链表
k个一组翻转链表问题描述给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么将最后剩余节点保持原有顺序。示例 :给定这个链表:1->2->3->4->5当 k = 2 时,应当返回: 2->1->4->3->5当 k原创 2019-03-25 10:36:26 · 258 阅读 · 0 评论 -
LeetCode刷题-移除元素
移除元素题目给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。样例给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前...原创 2019-03-12 11:10:58 · 183 阅读 · 0 评论 -
LeetCode刷题-最长连续序列
最长连续序列题目给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为 O(n)。样例输入: [100, 4, 200, 1, 3, 2]输出: 4解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。Code1int longestConsecutive(vector<int>& nums) { unordered_map...原创 2019-03-12 11:10:30 · 371 阅读 · 0 评论 -
LeetCode刷题-寻找两个有序数组的中位数
寻找两个有序数组的中位数题目给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。样例nums1 = [1, 3]nums2 = [2]则中位数是 2.0nums1 = [1, 2]nums2 = [3, 4]则中位数是...原创 2019-03-12 09:47:32 · 216 阅读 · 0 评论 -
LeetCode刷题-搜索旋转排序数组
搜索旋转排序数组题目假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。样例输入: nums = [4,5,6,7,0,1,2], target = 0输出: 4输入: nums = [4,5,6,7,0...原创 2019-03-12 09:14:47 · 122 阅读 · 0 评论 -
LeetCode刷题-删除排序数组中的重复项 II
删除排序数组中的重复项 II题目给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。样例给定 nums = [1,1,1,2,2,3],函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3 。给定 ...原创 2019-03-12 09:14:12 · 199 阅读 · 0 评论 -
LeetCode刷题-删除排序数组中的重复项
删除排序数组中的重复项题目给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。样例给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。给定 nums = [0,0,1,1,1,2...原创 2019-03-12 09:13:48 · 274 阅读 · 1 评论 -
LeetCode刷题-加油站
加油站问题描述在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。说明:如果题目有解,该答案即为唯一答案。输入数组均为非空数组,且长度相同。输入...原创 2019-03-13 14:42:10 · 99 阅读 · 0 评论 -
LeetCode刷题-爬楼梯
爬楼梯问题描述假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。样例输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1:1 阶 + 1 阶2:2 阶输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1:1 阶 + 1 阶 + 1 阶2:1 阶 + 2 阶...原创 2019-03-13 15:03:28 · 137 阅读 · 0 评论 -
LeetCode刷题-格雷编码
格雷编码问题描述格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。给定一个代表编码总位数的非负整数 n,打印其格雷编码序列。格雷编码序列必须以 0 开头。样例输入: 2输出: [0,1,3,2]解释:00 - 001 - 111 - 310 - 2对于给定的 n,其格雷编码序列并不唯一。例如,[0,2,3,1] 也是一个有效的格雷编码序列。0...原创 2019-03-13 15:09:23 · 139 阅读 · 0 评论 -
LeetCode刷题-矩阵置零
矩阵置零问题描述给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。样例输入:[[1,1,1],[1,0,1],[1,1,1]]输出:[[1,0,1],[0,0,0],[1,0,1]]输入:[[0,1,2,0],[3,4,5,2],[1,3,1,5]]输出:[[0,0,0,0],[0,4,5,0...原创 2019-03-13 15:24:54 · 222 阅读 · 0 评论 -
LeetCode刷题-删除排序链表中的重复元素
删除排序链表中的重复元素问题描述给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 :输入: 1->1->2输出: 1->2输入: 1->1->2->3->3输出: 1->2->3Code1时间复杂度O(n),空间复杂度O(1)/** * Definition for singly-linked l...原创 2019-03-13 16:42:46 · 381 阅读 · 0 评论 -
LeetCode刷题-两两交换链表中的节点
两两交换链表中的节点问题描述给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.Code时间复杂度O(n),空间复杂度O(1)/** * Definition for singly-linked list...原创 2019-04-12 11:33:58 · 156 阅读 · 0 评论 -
LeetCode刷题-旋转链表
旋转链表问题描述给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。示例 1:输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5->1->2->3->4->NUL原创 2019-04-12 11:34:32 · 136 阅读 · 0 评论 -
LeetCode刷题-删除排序链表中的重复元素 II
删除排序链表中的重复元素 II问题描述给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。示例 1:输入: 1->2->3->3->4->4->5输出: 1->2->5示例 2:输入: 1->1->1->2->3输出: 2->3Code1时间复杂度O(原创 2019-04-12 11:34:51 · 231 阅读 · 0 评论 -
LeetCode刷题-反转链表 II
反转链表 II问题描述反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。说明:1 ≤ m ≤ n ≤ 链表长度。示例:输入: 1->2->3->4->5->NULL, m = 2, n = 4输出: 1->4->3->2->5->NULLCode时间复杂度O(n),空间复杂度O(1)/** * Defi.原创 2019-04-12 11:35:14 · 101 阅读 · 0 评论 -
LeetCode刷题-搜索旋转排序数组 II
搜索旋转排序数组 II题目假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,0,1,2,2,5,6] 可能变为 [2,5,6,0,0,1,2] )。编写一个函数来判断给定的目标值是否存在于数组中。若存在返回 true,否则返回 false。样例输入: nums = [2,5,6,0,0,1,2], target = 0输出: true输入: nums =...原创 2019-03-12 07:34:55 · 111 阅读 · 0 评论 -
LeetCode刷题-四数之和
四数之和题目给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。样例给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。满足要求的四元组集...原创 2019-03-12 11:11:23 · 188 阅读 · 0 评论 -
LeetCode刷题-最接近的三数之和
最接近的三数之和题目给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。样例给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).Codeint ...原创 2019-03-11 09:06:55 · 170 阅读 · 0 评论 -
LeetCode刷题-只出现一次的数字 II
只出现一次的数字 II问题描述给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?样例输入: [2,2,3,2]输出: 3输入: [0,1,0,1,0,1,99]输出: 99Code1时间复杂度O(n),空间复杂度O(1)int singleNu...原创 2019-03-14 10:15:36 · 112 阅读 · 0 评论 -
LeetCode刷题-只出现一次的数字
只出现一次的数字问题描述给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?样例输入: [2,2,1]输出: 1输入: [4,1,2,1,2]输出: 4Code1时间复杂度O(n),空间复杂度O(1)int singleNumber(vector&...原创 2019-03-14 09:56:50 · 388 阅读 · 0 评论 -
LeetCode刷题-分糖果
分糖果问题描述老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。你需要按照以下要求,帮助老师给这些孩子分发糖果:每个孩子至少分配到 1 个糖果。相邻的孩子中,评分高的孩子必须获得更多的糖果。那么这样下来,老师至少需要准备多少颗糖果呢?样例输入: [1,0,2]输出: 5解释: 你可以分别给这三个孩子分发 2、1、2 颗糖果。...原创 2019-03-14 09:41:10 · 255 阅读 · 0 评论 -
LeetCode刷题-两数相加
两数相加问题描述给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。样例输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -&gt...原创 2019-03-14 16:59:41 · 147 阅读 · 0 评论 -
LeetCode刷题-旋转图像
旋转图像问题描述给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。样例给定 matrix =[[1,2,3],[4,5,6],[7,8,9]],原地旋转输入矩阵,使其变为:[[7,4,1],[8,5,2],[9,6,3]]给定 mat...原创 2019-03-11 08:59:38 · 173 阅读 · 0 评论 -
LeetCode刷题-三数之和
三数之和题目给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。样例给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[[-1, 0, 1],[-1, -1, 2]]Codevecto...原创 2019-03-11 09:06:17 · 250 阅读 · 0 评论 -
LeetCode-0001两数之和
两数之和题目给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。样例给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]Co...原创 2019-03-11 09:05:42 · 243 阅读 · 0 评论 -
LeetCode刷题-第k个排序
第k个排序题目描述给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列。按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下:“123”“132”“213”“231”“312”“321”给定 n 和 k,返回第 k 个排列。说明:给定 n 的范围是 [1, 9]。给定 k 的范围是[1, n!]。样例输入: n = 3, k = 3...原创 2019-03-11 09:04:50 · 255 阅读 · 0 评论 -
LeetCode刷题-下一个排列
下一个排序题目描述实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。样例1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1Code时间复杂度O(n),空间复杂度O(1);void nextPermu...原创 2019-03-11 09:04:11 · 140 阅读 · 0 评论 -
LeetCode刷题-接雨水
接雨水题目描述给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。样例输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 6Code1时间复杂度O(n), 空间复杂度O(n);...原创 2019-03-11 09:02:49 · 199 阅读 · 0 评论 -
LeetCode刷题-有效的数独
有效的数独题目描述判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。上图是一个部分填充的有效的数独。数独部分空格内已填入了数字,空白格用 ‘.’ 表示。样例输入:[[“5”,“3”,".",".",“7...原创 2019-03-11 09:01:58 · 151 阅读 · 0 评论 -
LeetCode刷题-加一
加一问题描述给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。样例输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321。Code1...原创 2019-03-11 09:00:29 · 163 阅读 · 0 评论