LeetCode
文章平均质量分 55
旺 崽
这个作者很懒,什么都没留下…
展开
-
LeetCode 2646 最小化旅行的价格总和
现有一棵无向、无根的树,树中有 n 个节点,按从 0 到 n - 1 编号。给你一个整数 n 和一个长度为 n - 1 的二维整数数组 edges ,其中 edges[i] = [ai, bi] 表示树中节点 ai 和 bi 之间存在一条边。每个节点都关联一个价格。给你一个整数数组 price ,其中 price[i] 是第 i 个节点的价格。给定路径的 价格总和 是该路径上所有节点的价格之和。原创 2023-04-29 16:53:41 · 315 阅读 · 1 评论 -
LeetCode 5932 合法重新排列数对
题目链接给你一个下标从 0 开始的二维整数数组 pairs ,其中 pairs[i] = [starti, endi] 。如果 pairs 的一个重新排列,满足对每一个下标 i ( 1 <= i < pairs.length )都有 endi-1 == starti ,那么我们就认为这个重新排列是 pairs 的一个 合法重新排列 。请你返回 任意一个 pairs 的合法重新排列。注意:数据保证至少存在一个 pairs 的合法重新排列。示例 1:输入:pairs = [[5,1],[4原创 2021-12-05 18:36:11 · 343 阅读 · 0 评论 -
LeetCode 2092 找出知晓秘密的所有专家
题目链接给你一个整数 n ,表示有 n 个专家从 0 到 n - 1 编号。另外给你一个下标从 0 开始的二维整数数组 meetings ,其中 meetings[i] = [xi, yi, timei] 表示专家 xi 和专家 yi 在时间 timei 要开一场会。一个专家可以同时参加 多场会议 。最后,给你一个整数 firstPerson 。专家 0 有一个 秘密 ,最初,他在时间 0 将这个秘密分享给了专家 firstPerson 。接着,这个秘密会在每次有知晓这个秘密的专家参加会议时进行传播。原创 2021-11-29 15:05:28 · 475 阅读 · 0 评论 -
LeetCode 5791 统计子岛屿
题目链接给你两个 m x n 的二进制矩阵 grid1 和 grid2 ,它们只包含 0 (表示水域)和 1 (表示陆地)。一个 岛屿 是由 四个方向 (水平或者竖直)上相邻的 1 组成的区域。任何矩阵以外的区域都视为水域。如果 grid2 的一个岛屿,被 grid1 的一个岛屿 完全 包含,也就是说 grid2 中该岛屿的每一个格子都被 grid1 中同一个岛屿完全包含,那么我们称 grid2 中的这个岛屿为 子岛屿 。请你返回 grid2 中 子岛屿 的 数目 。示例 1:输入:grid1原创 2021-06-20 20:01:11 · 17789 阅读 · 0 评论 -
LeetCode 5790 查询差绝对值的最小值
题目链接一个数组 a 的 差绝对值的最小值 定义为:0 <= i < j < a.length 且 a[i] != a[j] 的 |a[i] - a[j]| 的 最小值。如果 a 中所有元素都 相同 ,那么差绝对值的最小值为 -1 。比方说,数组 [5,2,3,7,2] 差绝对值的最小值是 |2 - 3| = 1 。注意答案不为 0 ,因为 a[i] 和 a[j] 必须不相等。给你一个整数数组 nums 和查询数组 queries ,其中 queries[i] = [li, ri]原创 2021-06-20 19:50:17 · 18029 阅读 · 0 评论 -
LeetCode 160 相交链表
题目链接给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。图示两个链表在节点 c1 开始相交:题目数据 保证 整个链式结构中不存在环。注意,函数返回结果后,链表必须 保持其原始结构 。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Intersected at '8'解原创 2021-06-04 15:48:29 · 17421 阅读 · 0 评论 -
LeetCode 525 连续数组
题目链接给定一个二进制数组 nums , 找到含有相同数量的 0 和 1 的最长连续子数组,并返回该子数组的长度。示例 1:输入: nums = [0,1]输出: 2说明: [0, 1] 是具有相同数量0和1的最长连续子数组。示例 2:输入: nums = [0,1,0]输出: 2说明: [0, 1] (或 [1, 0]) 是具有相同数量0和1的最长连续子数组。思维题~我们把 000 转化为 −1-1−1,然后求一遍前缀和,题目就转化为求一段和为 000 的区间的最大长度,用 ma原创 2021-06-03 19:22:25 · 6378 阅读 · 0 评论 -
LeetCode 1744 你能在你最喜欢的那天吃到你最喜欢的糖果吗?
题目链接给你一个下标从 0 开始的正整数数组 candiesCount ,其中 candiesCount[i] 表示你拥有的第 i 类糖果的数目。同时给你一个二维数组 queries ,其中 queries[i] = [favoriteTypei, favoriteDayi, dailyCapi] 。你按照如下规则进行一场游戏:你从第 0 天开始吃糖果。你在吃完 所有 第 i - 1 类糖果之前,不能 吃任何一颗第 i 类糖果。在吃完所有糖果之前,你必须每天 至少 吃 一颗 糖果。请你构建一原创 2021-06-03 16:46:20 · 6369 阅读 · 0 评论 -
LeetCode 1882 使用服务器处理任务
题目链接给你两个 下标从 0 开始 的整数数组 servers 和 tasks ,长度分别为 n 和 m 。servers[i] 是第 i 台服务器的 权重 ,而 tasks[j] 是处理第 j 项任务 所需要的时间(单位:秒)。你正在运行一个仿真系统,在处理完所有任务后,该系统将会关闭。每台服务器只能同时处理一项任务。第 0 项任务在第 0 秒可以开始处理,相应地,第 j 项任务在第 j 秒可以开始处理。处理第 j 项任务时,你需要为它分配一台原创 2021-05-31 20:32:14 · 2230 阅读 · 0 评论 -
LeetCode 477 汉明距离总和
题目链接两个整数的 汉明距离 指的是这两个数字的二进制数对应位不同的数量。计算一个数组中,任意两个数之间汉明距离的总和。示例:输入: 4, 14, 2输出: 6解释: 在二进制表示中,4表示为0100,14表示为1110,2表示为0010。(这样表示是为了体现后四位之间关系)所以答案为:HammingDistance(4, 14) + HammingDistance(4, 2) + HammingDistance(14, 2) = 2 + 2 + 2 = 6.简单位运算~我们可以把每个原创 2021-05-28 14:58:47 · 1963 阅读 · 0 评论 -
LeetCode 5725 序列中不同最大公约数的数目
题目链接给你一个由正整数组成的数组 nums 。数字序列的 最大公约数 定义为序列中所有整数的共有约数中的最大整数。例如,序列 [4,6,16] 的最大公约数是 2 。数组的一个 子序列 本质是一个序列,可以通过删除数组中的某些元素(或者不删除)得到。例如,[2,5,10] 是 [1,2,1,2,4,1,5,10] 的一个子序列。计算并返回 nums 的所有 非空 子序列中 不同 最大公约数的 数目 。示例 1:输入:nums = [6,10,3]输出:5解释:上图显示了所有的非空子序原创 2021-04-04 17:03:02 · 1991 阅读 · 0 评论 -
LeetCode 781 森林中的兔子
题目链接森林中,每个兔子都有颜色。其中一些兔子(可能是全部)告诉你还有多少其他的兔子和自己有相同的颜色。我们将这些回答放在 answers 数组里。返回森林中兔子的最少数量。示例:输入: answers = [1, 1, 2]输出: 5解释:两只回答了 "1" 的兔子可能有相同的颜色,设为红色。之后回答了 "2" 的兔子不会是红色,否则他们的回答会相互矛盾。设回答了 "2" 的兔子为蓝色。此外,森林中还应有另外 2 只蓝色兔子的回答没有包含在数组中。因此森林中兔子的最少数量是 5: 3原创 2021-04-04 10:32:26 · 1914 阅读 · 0 评论 -
LeetCode 1143 最长公共子序列
题目链接给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。如果不存在公共子序列 ,返回 0 。一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。两个字符串的 公共子序列 是这两个字符串所共同拥有的子序列。示例 1:输入:text1 = "abcde", text2 = "ac原创 2021-04-03 22:09:13 · 1813 阅读 · 0 评论 -
LeetCode 面试题 17.21. 直方图的水量
题目链接给定一个直方图(也称柱状图),假设有人从上面源源不断地倒水,最后直方图能存多少水量?直方图的宽度为 1。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的直方图,在这种情况下,可以接 6 个单位的水(蓝色部分表示水)。 感谢 Marcos 贡献此图。示例:输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 6单调栈~首先我们不妨思考一下,什么时候能存水,肯定要出现两高夹一低才行,此时我们把存的水看作是一个矩形,假设遍历到某一高度 iii 时,出现原创 2021-04-03 17:49:54 · 2429 阅读 · 0 评论 -
LeetCode 74 搜索二维矩阵
题目链接编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。每行的第一个整数大于前一行的最后一个整数。示例 1:输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3输出:true示例 2:输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 13输出:false看到有序原创 2021-03-30 20:21:41 · 1799 阅读 · 0 评论 -
LeetCode 61 旋转链表
题目链接给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。示例 1:输入:head = [1,2,3,4,5], k = 2输出:[4,5,1,2,3]示例 2:输入:head = [0,1,2], k = 4输出:[2,0,1]简单链表操作,我们注意到移动的次数 k 可能会大于链表长度,所以必须要取模,这样一来移动的可能性只会为 [0,len-1],而 0 就相当于没移动,所以我们只需要只需要遍历一下列表,将左边 len-k 的部分拼接到右边的末尾即可原创 2021-03-27 10:39:15 · 1909 阅读 · 0 评论 -
LeetCode 82 删除排序链表中的重复元素 II
题目链接存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除链表中所有存在数字重复情况的节点,只保留原始链表中 没有重复出现 的数字。返回同样按升序排列的结果链表。示例 1:输入:head = [1,2,3,3,4,4,5]输出:[1,2,5]示例 2:输入:head = [1,1,1,2,3]输出:[2,3]链表操作~我的方法是遍历一遍链表结点,对某一结点 qqq,判断 q.nextq.nextq.next 的值和 q.next.nextq.next.nextq.n原创 2021-03-25 16:19:54 · 1845 阅读 · 0 评论 -
LeetCode 456 132 模式
题目链接给你一个整数数组 nums ,数组中共有 n 个整数。132 模式的子序列 由三个整数 nums[i]、nums[j] 和 nums[k] 组成,并同时满足:i < j < k 和 nums[i] < nums[k] < nums[j] 。如果 nums 中存在 132 模式的子序列 ,返回 true ;否则,返回 false 。示例 1:输入:nums = [1,2,3,4]输出:false解释:序列中不存在 132 模式的子序列。示例 2:输入:nums原创 2021-03-24 19:06:20 · 1969 阅读 · 0 评论 -
LeetCode 1802 有界数组中指定下标处的最大值
题目链接给你三个正整数 n、index 和 maxSum 。你需要构造一个同时满足下述所有条件的数组 nums(下标 从 0 开始 计数):nums.length == nnums[i] 是 正整数 ,其中 0 <= i < nabs(nums[i] - nums[i+1]) <= 1 ,其中 0 <= i < n-1nums 中所有元素之和不超过 maxSumnums[index] 的值被最大化返回你所构造的数组中的 nums[index] 。注意:abs原创 2021-03-22 20:20:29 · 2566 阅读 · 0 评论 -
LeetCode 5710 积压订单中的订单总数
题目链接给你一个二维整数数组 orders ,其中每个 orders[i] = [price_i, amount_i, orderType_i] 表示有 amount_i 笔类型为 orderType_i 、价格为 price_i 的订单。订单类型 orderTypei 可以分为两种:0 表示这是一批采购订单 buy1 表示这是一批销售订单 sell注意,orders[i] 表示一批共计 amount_i 笔的独立订单,这些订单的价格和类型相同。对于所有有效的 i ,由 orders[i] 表示原创 2021-03-21 19:54:00 · 1770 阅读 · 0 评论 -
LeetCode 1792 最大平均通过率
题目链接一所学校里有一些班级,每个班级里有一些学生,现在每个班都会进行一场期末考试。给你一个二维数组 classes ,其中 classes[i] = [passi, totali] ,表示你提前知道了第 i 个班级总共有 totali 个学生,其中只有 passi 个学生可以通过考试。给你一个整数 extraStudents ,表示额外有 extraStudents 个聪明的学生,他们 一定 能通过任何班级的期末考。你需要给这 extraStudents 个学生每人都安排一个班级,使得 所有 班级的原创 2021-03-21 19:46:33 · 1812 阅读 · 0 评论 -
Leetcode 150 逆波兰表达式求值
题目链接根据逆波兰表示法,求表达式的值。有效的算符包括 +、-、*、/ 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。示例 1:输入:tokens = ["2","1","+","3","*"]输出:9解释:该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 9示例 2:输入:tokens = ["4","13","5","/","+"]输原创 2021-03-20 16:19:04 · 1750 阅读 · 0 评论 -
LeetCode 59 螺旋矩阵 II
题目链接给你一个正整数 nnn ,生成一个包含 111 到 n2n^2n2 所有元素,且元素按顺时针顺序螺旋排列的 nnn x nnn 正方形矩阵 matrixmatrixmatrix 。示例 1:输入:n = 3输出:[[1,2,3],[8,9,4],[7,6,5]]示例 2:输入:n = 1输出:[[1]]螺旋填数有一些性质我们必须要知道:在填数的过程中有上,下,左,右四个边界,且这四个边界会逐渐缩至一个点填数始终遵循以下顺序(顺时针):a.从左到右b.从上到下c.从右到原创 2021-03-16 16:17:20 · 1727 阅读 · 0 评论 -
LeetCode 54 螺旋矩阵
题目链接给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例 2:输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]找规律~拿样例来说明,对样例一:1 2 34 5 67 8 9我们先拿出第一个列表原创 2021-03-15 16:52:15 · 1702 阅读 · 0 评论 -
LeetCode 1178 猜字谜
题目链接外国友人仿照中国字谜设计了一个英文版猜字谜小游戏,请你来猜猜看吧。字谜的迷面 puzzle 按字符串形式给出,如果一个单词 word 符合下面两个条件,那么它就可以算作谜底:单词 word 中包含谜面 puzzle 的第一个字母。单词 word 中的每一个字母都可以在谜面 puzzle 中找到。例如,如果字谜的谜面是 “abcdefg”,那么可以作为谜底的单词有 “faced”, “cabbage”, 和 “baggage”;而 “beefed”(不含字母 “a”)以及 “based”(其原创 2021-03-11 19:22:22 · 1761 阅读 · 0 评论 -
LeetCode 131 分割回文串
LeetCode 131 分割回文串题目链接给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。回文串是正着读和反着读都一样的字符串。示例 1:输入:s = "aab"输出:[["a","a","b"],["aa","b"]]示例 2:输入:s = "a"输出:[["a"]]暴力所有分隔符,显然对一个长为 nnn 的字符串最多可以划分成 nnn 个子串,那么我们就可以暴力所有的可能,复杂度 O(2n)O(2^n)O(2n)~注意最原创 2021-03-09 09:19:00 · 1754 阅读 · 0 评论 -
LeetCode 1052 爱生气的书店老板
题目链接今天,书店老板有一家店打算试营业 customers.length 分钟。每分钟都有一些顾客(customers[i])会进入书店,所有这些顾客都会在那一分钟结束后离开。在某些时候,书店老板会生气。 如果书店老板在第 i 分钟生气,那么 grumpy[i] = 1,否则 grumpy[i] = 0。 当书店老板生气时,那一分钟的顾客就会不满意,不生气则他们是满意的。书店老板知道一个秘密技巧,能抑制自己的情绪,可以让自己连续 X 分钟不生气,但却只能使用一次。请你返回这一天营业下来,最多有多少原创 2021-03-06 16:26:12 · 1689 阅读 · 1 评论 -
LeetCode 1774 最接近目标价格的甜点成本
题目链接你打算做甜点,现在需要购买配料。目前共有 n 种冰激凌基料和 m 种配料可供选购。而制作甜点需要遵循以下几条规则:必须选择 一种 冰激凌基料。可以添加 一种或多种 配料,也可以不添加任何配料。每种类型的配料最多两份 。给你以下三个输入:baseCosts ,一个长度为 n 的整数数组,其中每个 baseCosts[i] 表示第 i 种冰激凌基料的价格。toppingCosts,一个长度为 m 的整数数组,其中每个 toppingCosts[i] 表示 一份 第 i 种冰激凌配料的原创 2021-03-06 10:57:37 · 1712 阅读 · 0 评论 -
LeetCode 503 下一个更大元素 II
题目链接给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1。示例 1:输入: [1,2,1]输出: [2,-1,2]解释: 第一个 1 的下一个更大的数是 2;数字 2 找不到下一个更大的数; 第二个 1 的下一个最大的数需要循环搜索,结果也是 2。单调栈~栈内存元素下标,栈顶放最小值,对当前的 n原创 2021-03-06 10:42:45 · 1644 阅读 · 0 评论 -
LeetCode 1438 绝对差不超过限制的最长连续子数组
LeetCode 1438 绝对差不超过限制的最长连续子数组题目链接给你一个整数数组 nums ,和一个表示限制的整数 limit,请你返回最长连续子数组的长度,该子数组中的任意两个元素之间的绝对差必须小于或者等于 limit 。如果不存在满足条件的子数组,则返回 0 。示例 1:输入:nums = [8,2,4,7], limit = 4输出:2 解释:所有子数组如下:[8] 最大绝对差 |8-8| = 0 <= 4.[8,2] 最大绝对差 |8-2| = 6 > 4. [原创 2021-03-04 19:19:11 · 1867 阅读 · 1 评论 -
LeetCode 354 俄罗斯套娃信封问题
LeetCode 354 俄罗斯套娃信封问题题目链接给定一些标记了宽度和高度的信封,宽度和高度以整数对形式 (w, h) 出现。当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样。请计算最多能有多少个信封能组成一组“俄罗斯套娃”信封(即可以把一个信封放到另一个信封里面)。说明:不允许旋转信封。示例:输入: envelopes = [[5,4],[6,4],[6,7],[2,3]]输出: 3 解释: 最多信封的个数为 3, 组合为: [2,3]原创 2021-03-04 10:42:43 · 1723 阅读 · 1 评论 -
LeetCode 1004 最大连续1的个数 III
LeetCode 1004 最大连续1的个数 III题目链接给定一个由若干 0 和 1 组成的数组 A,我们最多可以将 K 个值从 0 变成 1 。返回仅包含 1 的最长(连续)子数组的长度。示例 1:输入:A = [1,1,1,0,0,0,1,1,1,1,0], K = 2输出:6解释: [1,1,1,0,0,1,1,1,1,1,1]粗体数字从 0 翻转到 1,最长的子数组长度为 6。示例 2:输入:A = [0,0,1,1,0,0,1,1,1,0,1,1,0,0,0,1,1,1,原创 2021-03-03 15:35:55 · 1827 阅读 · 1 评论 -
LeetCode 995 K 连续位的最小翻转次数
LeetCode 995 K 连续位的最小翻转次数题目链接在仅包含 0 和 1 的数组 A 中,一次 K 位翻转包括选择一个长度为 K 的(连续)子数组,同时将子数组中的每个 0 更改为 1,而每个 1 更改为 0。返回所需的 K 位翻转的最小次数,以便数组没有值为 0 的元素。如果不可能,返回 -1。示例 1:输入:A = [0,1,0], K = 1输出:2解释:先翻转 A[0],然后翻转 A[2]。示例 2:输入:A = [1,1,0], K = 2输出:-1解释:无论我们怎样原创 2021-03-02 19:01:34 · 1755 阅读 · 0 评论 -
LeetCode 304 二维区域和检索 - 矩阵不可变
LeetCode 304 二维区域和检索 - 矩阵不可变题目链接给定一个二维矩阵,计算其子矩形范围内元素的总和,该子矩阵的左上角为 (row1, col1) ,右下角为 (row2, col2) 。上图子矩阵左上角 (row1, col1) = (2, 1) ,右下角(row2, col2) = (4, 3),该子矩形内元素的总和为 8。示例:给定 matrix = [ [3, 0, 1, 4, 2], [5, 6, 3, 2, 1], [1, 2, 0, 1, 5], [4,原创 2021-03-02 11:44:06 · 1745 阅读 · 0 评论 -
LeetCode 300 最长递增子序列
LeetCode 300 最长递增子序列题目链接给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。示例 1:输入:nums = [10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。示例 2:输入:nums = [0,1,0,3,2,3]输出:4示例原创 2021-03-02 09:44:32 · 1892 阅读 · 0 评论 -
LeetCode 5691 通过最少操作次数使数组的和相等
LeetCode 5691 通过最少操作次数使数组的和相等题目链接给你两个长度可能不等的整数数组 nums1 和 nums2 。两个数组中的所有值都在 1 到 6 之间(包含 1 和 6)。每次操作中,你可以选择 任意 数组中的任意一个整数,将它变成 1 到 6 之间 任意 的值(包含 1 和 6)。请你返回使 nums1 中所有数的和与 nums2 中所有数的和相等的最少操作次数。如果无法使两个数组的和相等,请返回 -1 。示例 1:输入:nums1 = [1,2,3,4,5,6], nums原创 2021-02-28 20:00:44 · 1871 阅读 · 0 评论 -
LeetCode 395 至少有 K 个重复字符的最长子串
LeetCode 395 至少有 K 个重复字符的最长子串题目链接给你一个字符串 s 和一个整数 k ,请你找出 s 中的最长子串, 要求该子串中的每一字符出现次数都不少于 k 。返回这一子串的长度。示例 1:输入:s = "aaabb", k = 3输出:3解释:最长子串为 "aaa" ,其中 'a' 重复了 3 次。示例 2:输入:s = "ababbc", k = 2输出:5解释:最长子串为 "ababb" ,其中 'a' 重复了 2 次, 'b' 重复了 3 次。双指针~原创 2021-02-28 10:17:57 · 1762 阅读 · 0 评论 -
LeetCode 765 情侣牵手
LeetCode 765 情侣牵手题目链接N 对情侣坐在连续排列的 2N 个座位上,想要牵到对方的手。 计算最少交换座位的次数,以便每对情侣可以并肩坐在一起。 一次交换可选择任意两人,让他们站起来交换座位。人和座位用 0 到 2N-1 的整数表示,情侣们按顺序编号,第一对是 (0, 1),第二对是 (2, 3),以此类推,最后一对是 (2N-2, 2N-1)。这些情侣的初始座位 row[i] 是由最初始坐在第 i 个座位上的人决定的。示例 1:输入: row = [0, 2, 1, 3]输出原创 2021-02-27 10:31:29 · 1788 阅读 · 0 评论 -
LeetCode 703 数据流中的第 K 大元素
LeetCode 703 数据流中的第 K 大元素题目链接设计一个找到数据流中第 k 大元素的类(class)。注意是排序后的第 k 大元素,不是第 k 个不同的元素。请实现 KthLargest 类:KthLargest(int k, int[] nums) 使用整数 k 和整数流 nums 初始化对象。int add(int val) 将 val 插入数据流 nums 后,返回当前数据流中第 k 大的元素。示例:输入:["KthLargest", "add", "add", "add",原创 2021-02-26 15:29:32 · 1757 阅读 · 0 评论 -
LeetCode 567 字符串的排列
LeetCode 567 字符串的排列题目链接给定两个字符串 s1 和 s2,写一个函数来判断 s2 是否包含 s1 的排列。换句话说,第一个字符串的排列之一是第二个字符串的子串。示例 1:输入: s1 = "ab" s2 = "eidbaooo"输出: True解释: s2 包含 s1 的排列之一 ("ba").示例 2:输入: s1= "ab" s2 = "eidboaoo"输出: False这题暴力的复杂度达到了阶乘级别,显示不可取,首先我们考虑如果有两个等长的字母字符串,如原创 2021-02-25 11:04:56 · 1733 阅读 · 0 评论