
leetcode
文章平均质量分 79
weixin_Akian
这个作者很懒,什么都没留下…
展开
-
Leetcode算法系列八(搜索)
5道经典深度优先搜索与宽度优先搜索相关题目例1:岛屿数量(medium)(深搜、宽搜)200. 岛屿数量算法伪代码代码例2-a:词语阶梯(medium)(宽搜、图、哈希表)127. 单词接龙算法伪代码代码例2-b:词语阶梯2(hard)(记录路径的宽搜、图、哈希表)126. 单词接龙 II算法伪代码代码例3:火柴棍摆正方形(medium)(回溯深搜、位运算)473. 火柴拼正方形算法伪代码代码例4:收集雨水2(hard)(带优先级的宽度优先搜索、堆)407. 接雨水 II算法伪代码代码例1:岛屿数量(me原创 2021-02-04 16:06:11 · 533 阅读 · 0 评论 -
LeetCode解析------473. 火柴拼正方形-位运算
473. 火柴拼正方形还记得童话《卖火柴的小女孩》吗?现在,你知道小女孩有多少根火柴,请找出一种能使用所有火柴拼成一个正方形的方法。不能折断火柴,可以把火柴连接起来,并且每根火柴都要用到。输入为小女孩拥有火柴的数目,每根火柴用其长度表示。输出即为是否能用所有的火柴拼成正方形。示例 1:输入: [1,1,2,2,2]输出: true解释: 能拼成一个边长为2的正方形,每边两根火柴。示例 2:输入: [3,3,3,3,4]输出: false解释: 不能用所有火柴拼成一个正方形。注意:给定原创 2021-02-01 21:57:00 · 165 阅读 · 0 评论 -
LeetCode解析------200. 岛屿数量-深度优先搜索
200.岛屿数量给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例 1:输入:grid = [[“1”,“1”,“1”,“1”,“0”],[“1”,“1”,“0”,“1”,“0”],[“1”,“1”,“0”,“0”,“0”],[“0”,“0”,“0”,“0”,“0”]]输出:1示例 2:输入:grid = [[“1”,“原创 2021-01-25 00:05:26 · 213 阅读 · 2 评论 -
Leetcode算法系列七(哈希表与字符串)
1.6道经典 哈希表与字符串的相关题目例1:最长回文串(easy)(字符哈希)例2:词语模式(easy)(字串符哈希)例3:同字符词语分组(medium)(数组哈希)例4:无重复字符的最长子串(medium)(字符哈希)例5:重复的DNA序列(medium)(字串符哈希)例6:最小窗口子串(hard)(哈希维护窗口)例1:最长回文串(easy)(字符哈希)409. 最长回文串给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如原创 2021-01-17 19:44:07 · 199 阅读 · 0 评论 -
Leetcode算法系列六(二分查找与二叉查找树)
1.5道经典 二分搜索与二叉查找( 排序)树 树的相关题目预备知识:二分查找基础知识例1:插入位置(easy) (二分查找)例2:区间查找(medium) (二分查找)例3:旋转数组查找(medium) (二分查找)预备知识:二叉查找(排序)树基础知识例4:二叉查找树编码与解码(medium)例5:逆序数(hard) (二叉查找树应用)例1:插入位置(easy) (二分查找)搜索插入位置给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会原创 2020-11-21 19:29:38 · 144 阅读 · 0 评论 -
Leetcode算法系列五(二叉树与图)
1.5道经典 二叉树与图 图的相关题目预备知识:二叉树基础知识例1:路径之和2(medium) (二叉树深搜)例2:最近的公共祖先(medium) (二叉树性质)例3:二叉树转链表(medium) (二叉树与链表)预备知识:二叉树层次遍历例4:侧面观察二叉树(medium) (二叉树宽搜)预备知识:图的基础知识例5:课程安排(有向图判断环)(medium)例1:路径之和2(medium) (二叉树深搜)113.路径总和 II难度中等给定一个二叉树和一个目标和,找到所有从根节点到叶子节原创 2020-11-07 19:15:55 · 187 阅读 · 0 评论 -
Leetcode算法系列四(递归、回溯与分治)
1.6道经典 递归、回溯、分治的相关题目预备知识:递归函数与回溯算法例1-a: 求子集(medium) (回溯法、位运算法)例1-b: 求子集2(medium) (回溯法)例1-c: 组合数之和2(medium) (回溯法、剪枝)例2:生成括号(medium) (递归设计)例3:N皇后 (hard) (回溯法)预备知识:分治算法与归并排序例4:逆序数 (hard) (分治法、归并排序应用)例1-a: 求子集(medium) (回溯法、位运算法)子集给定一组不含重复元素的整数数组 nu原创 2020-10-28 21:12:50 · 216 阅读 · 0 评论 -
Leetcode算法系列三(贪心)
1.7道经典贪心算法的相关题目例1:分糖果 (easy) (排序、贪心)例2:摇摆序列 (medium) (贪心)例3:移除K个数字 (medium) (栈、贪心)例4-a:跳跃游戏(medium) (贪心)例4-b:跳跃游戏2(hard) (贪心)例5:射击气球(medium) (排序、贪心)例6:最优加油方法(hard) (堆、贪心)575. 分糖果给定一个偶数长度的数组,其中不同的数字代表着不同种类的糖果,每一个数字代表一个糖果。你需要把这些糖果平均分给一个弟弟和一个妹妹。返回妹妹可原创 2020-10-19 10:21:06 · 139 阅读 · 0 评论 -
Leetcode算法系列二(链表)
1.8道经典链表常考题目例1-a:反转链表例1-b:反转链表2例2:链表求交点例3:链表求环例4:链表划分例5:复杂链表的复制例6-a:2个排序链表归并例6-b:K个排序链表归并206.反转链表反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?public class Solution {原创 2020-10-16 00:46:17 · 432 阅读 · 0 评论 -
Leetcode算法系列一(栈、队列、堆)
225.用队列实现栈(栈、队列)(easy)使用队列实现栈的下列操作:push(x) – 元素 x 入栈pop() – 移除栈顶元素top() – 获取栈顶元素empty() – 返回栈是否为空注意:你只能使用队列的基本操作-- 也就是 push to back, peek/pop from front, size, 和 is empty 这些操作是合法的。你所使用的语言也许不支持队列。 你可以使用 list 或者 deque(双端队列)来模拟一个队列 , 只要是标准的队列操作即可。你可以原创 2020-10-11 19:59:49 · 177 阅读 · 0 评论 -
LeetCode解析------198. 打家劫舍-动态规划
题目:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高金额 = 1 + 3 = 4 。示例 2:输入:[2,原创 2020-09-20 14:15:50 · 155 阅读 · 0 评论 -
LeetCode解析------64. 最小路径和-动态规划
题目:给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入: [[1,3,1],[1,5,1],[4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1的总和最小。简单介绍:题目:最小路径和题目难度:中等使用语言:JAVA这道题来自leetcode题库的动态规划标签。解题思路:主要解法:动态规划解决该题分四步:1.确定最终状态:即到达右下角。2.转移方程(子问题原创 2020-09-12 14:48:31 · 161 阅读 · 0 评论 -
LeetCode解析------99. 恢复二叉搜索树-深度优先搜索
题目:二叉搜索树中的两个节点被错误地交换。请在不改变其结构的情况下,恢复这棵树。示例 1:输入: [1,3,null,null,2]1/3\2输出: [3,1,null,null,2]3/1\2示例 2:输入: [3,1,4,null,null,2]3/ \1 4/2输出: [2,1,4,null,null,3]2/ \1 4/3进阶:使用 O(n) 空间复杂度的解法很容易实现。你能想出一个只使用常数空间的解决方案吗?简单介原创 2020-08-30 13:32:02 · 148 阅读 · 0 评论 -
LeetCode解析------111. 二叉树的最小深度-深度优先搜索
题目:给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],3/ \9 20/ \15 7返回它的最小深度 2.简单介绍:题目:二叉树的最小深度题目难度:简单使用语言:JAVA这道题来自leetcode题库的深度优先搜索标签。解题思路:主要解法:递归。**递归出口很容易可以想得到。观察一下,发现情况可以分为3种。原创 2020-08-30 10:17:34 · 158 阅读 · 0 评论 -
LeetCode解析------106. 从中序与后序遍历序列构造二叉树-深度优先搜索
题目:根据一棵树的中序遍历与后序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出中序遍历 inorder = [9,3,15,20,7]后序遍历 postorder = [9,15,7,20,3]返回如下的二叉树:3/ \9 20/ \15 7简单介绍:题目:从中序与后序遍历序列构造二叉树题目难度:中等使用语言:JAVA这道题来自leetcode题库的深度优先搜索标签。解题思路:主要解法:递归。利用后序遍历来寻找root结点,再使用root结原创 2020-08-29 01:16:34 · 116 阅读 · 0 评论 -
LeetCode解析------105.从前序与中序遍历序列构造二叉树-深度优先搜索
题目:根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树:3/ \9 20/ \15 7简单介绍:题目:从前序与中序遍历序列构造二叉树题目难度:中等使用语言:JAVA这道题来自leetcode题库的深度优先搜索标签。解题思路:主要解法:递归。利用前序遍历来寻找root结点,再使用root结点原创 2020-08-27 12:15:35 · 132 阅读 · 0 评论 -
LeetCode解析------104. 二叉树的最大深度-深度优先搜索
题目:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],3/ \9 20/ \15 7 返回它的最大深度 3 。简单介绍:题目:二叉树的最大深度题目难度:简单使用语言:JAVA这道题来自leetcode题库的深度优先搜索标签。解题思路:主要解法:递归。递归问题,主要是拆分子问题和明确递归出口。该题把查找整个树的最大深度原创 2020-08-21 18:10:43 · 268 阅读 · 0 评论 -
LeetCode解析------98. 验证二叉搜索树-深度优先搜索
题目:给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入:2/ \1 3输出: true示例 2:输入:5/ \1 4/ \3 6输出: false解释: 输入为: [5,1,4,null,null,3,6]。根节点的值为 5 ,但是其右子节点值为 4 。简单介绍:题目:验证二叉搜索树原创 2020-08-19 19:08:19 · 161 阅读 · 0 评论 -
LeetCode解析------5489. 两球之间的磁力-二分查找
题目:在代号为 C-137 的地球上,Rick 发现如果他将两个球放在他新发明的篮子里,它们之间会形成特殊形式的磁力。Rick 有 n 个空的篮子,第 i 个篮子的位置在 position[i] ,Morty 想把 m 个球放到这些篮子里,使得任意两球间 最小磁力 最大。已知两个球如果分别位于 x 和 y ,那么它们之间的磁力为 |x - y| 。给你一个整数数组 position 和一个整数 m ,请你返回最大化的最小磁力。示例 1:输入:position = [1,2,3,4,7], m原创 2020-08-16 17:09:16 · 181 阅读 · 0 评论 -
LeetCode解析------313. 超级丑数-堆
题目:编写一段程序来查找第 n 个超级丑数。超级丑数是指其所有质因数都是长度为 k 的质数列表 primes 中的正整数。示例:输入: n = 12, primes = [2,7,13,19]输出: 32解释: 给定长度为 4 的质数列表 primes = [2,7,13,19],前 12 个超级丑数序列为:[1,2,4,7,8,13,14,16,19,26,28,32] 。说明:1 是任何给定 primes 的超级丑数。给定 primes 中的数字以升序排列。0 < k ≤原创 2020-08-14 18:08:51 · 196 阅读 · 0 评论 -
LeetCode解析------剑指 Offer 40. 最小的k个数-分治算法
题目:输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。示例 1:输入:arr = [3,2,1], k = 2 输出:[1,2] 或者 [2,1]示例 2:输入:arr = [0,1,2,1], k = 1 输出:[0]限制:0 <= k <= arr.length <= 100000 <= arr[i] <= 10000简单介绍:题目:最小的k个数题目难度:简原创 2020-08-12 18:05:33 · 197 阅读 · 0 评论 -
LeetCode解析------12.整数转罗马数字-字符串
题目:罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。原创 2020-08-10 18:52:45 · 186 阅读 · 0 评论 -
LeetCode解析------307.区域和检索 - 数组可修改-线段树
题目:给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点。update(i, val) 函数可以通过将下标为 i 的数值更新为 val,从而对数列进行修改。示例:Given nums = [1, 3, 5]sumRange(0, 2) -> 9update(1, 2)sumRange(0, 2) -> 8说明:数组仅可以在 update 函数下进行修改。你可以假设 update 函数与 sumRange 函原创 2020-08-07 22:50:59 · 157 阅读 · 1 评论 -
LeetCode解析------337. 打家劫舍 III-树
题目:在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。计算在不触动警报的情况下,小偷一晚能够盗取的最高金额。示例 1:输入: [3,2,3,null,3,null,1] 3/ \ 2 3\ \ 3 1输出: 7原创 2020-08-05 22:48:14 · 197 阅读 · 0 评论 -
LeetCode解析------45.跳跃游戏II-贪心算法
题目:给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ]简单介绍:题目:子集题目难度:中等使用语言:JAVA这道题来自leetcode题库的回溯算法标签。解题思路:首先看题、分析题意,我们可以明确1个关键点:1.从头到尾遍历数组,每遇到一个新数原创 2020-08-03 13:09:31 · 235 阅读 · 0 评论 -
LeetCode解析------78.子集-回溯算法
题目:给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ]简单介绍:题目:子集题目难度:中等使用语言:JAVA这道题来自leetcode题库的回溯算法标签。解题思路:首先看题、分析题意,我们可以明确1个关键点:1.从头到尾遍历数组,每遇到一个新数原创 2020-08-01 16:08:17 · 221 阅读 · 0 评论 -
LeetCode解析------4.寻找两个正序数组的中位数-二分查找
题目:给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出这两个正序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。示例 1:nums1 = [1, 3]nums2 = [2]则中位数是 2.0示例 2:nums1 = [1, 2]nums2 = [3, 4]则中位数是 (2 + 3)/2 = 2.5简单介绍:题目:寻找两个正序数组的中位数题目难度:困难使用语原创 2020-07-30 22:14:20 · 200 阅读 · 0 评论 -
LeetCode解析------10.正则表达式匹配-动态规划
题目:给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。‘.’ 匹配任意单个字符‘*’ 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *。示例 1:输入: s = “aa” p = “a”输出: false解释: “a” 无法匹配 “aa” 整个字符串。示例 2:输入:原创 2020-07-27 16:35:15 · 165 阅读 · 0 评论 -
LeetCode解析------208.实现 Trie (前缀树)-字典树
题目:实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作。示例:Trie trie = new Trie();trie.insert(“apple”);trie.search(“apple”); // 返回 truetrie.search(“app”); // 返回 falsetrie.startsWith(“app”); // 返回 truetrie.insert(“app”);trie.search(“app”);原创 2020-07-25 13:50:57 · 242 阅读 · 0 评论 -
LeetCode解析------241.为运算表达式设计优先级-分治算法
题目:给定一个含有数字和运算符的字符串,为表达式添加括号,改变其运算优先级以求出不同的结果。你需要给出所有可能的组合的结果。有效的运算符号包含 +, - 以及 * 。示例 1:输入: “2-1-1”输出: [0, 2]解释:((2-1)-1) = 0(2-(1-1)) = 2示例 2:输入: “23-45”输出: [-34, -14, -10, -10, 10]解释:(2x(3-(4x5))) = -34((2x3)-(4x5)) = -14((2x(3-4))x5) =原创 2020-07-23 23:44:59 · 261 阅读 · 0 评论 -
LeetCode解析------19.删除链表的倒数第N个节点-双指针
题目:给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?简单介绍:题目:删除链表的倒数第N个节点题目难度:中等使用语言:JAVA这道题来自leetcode题库的双指针、链表标签。解题思路:首先看题、分析题意,我们可以明确1个关键原创 2020-07-21 14:27:37 · 183 阅读 · 0 评论 -
LeetCode解析------97.交错字符串-动态规划
题目:给定三个字符串 s1, s2, s3, 验证 s3 是否是由 s1 和 s2 交错组成的。示例 1:输入: s1 = “aabcc”, s2 = “dbbca”, s3 = “aadbbcbcac”输出: true示例 2:输入: s1 = “aabcc”, s2 = “dbbca”, s3 = “aadbbbaccc”输出: false简单介绍:题目:交错字符串题目难度:困难使用语言:JAVA。这道题来自leetcode题库的动态规划标签。解题思路:首先看题、分析原创 2020-07-19 22:01:10 · 187 阅读 · 0 评论 -
LeetCode解析------155.最小栈-设计
题目:设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。示例:输入:[“MinStack”,“push”,“push”,“push”,“getMin”,“pop”,“top”,“getMin”][[],[-2],[0],[-3],[],[],[],[]]输出:[null,null,null,nul原创 2020-07-16 23:13:44 · 133 阅读 · 0 评论 -
LeetCode解析------1514.概率最大的路径-图
题目:给你一个由 n 个节点(下标从 0 开始)组成的无向加权图,该图由一个描述边的列表组成,其中 edges[i] = [a, b] 表示连接节点 a 和 b 的一条无向边,且该边遍历成功的概率为 succProb[i] 。指定两个节点分别作为起点 start 和终点 end ,请你找出从起点到终点成功概率最大的路径,并返回其成功概率。如果不存在从 start 到 end 的路径,请 返回 0 。只要答案与标准答案的误差不超过 1e-5 ,就会被视作正确答案。示例 1:输入:n =3, ed原创 2020-07-14 16:04:39 · 374 阅读 · 0 评论 -
LeetCode解析------761.特殊的二进制序列-递归
题目:特殊的二进制序列是具有以下两个性质的二进制序列:0 的数量与 1 的数量相等。二进制序列的每一个前缀码中 1 的数量要大于等于 0 的数量。给定一个特殊的二进制序列 S,以字符串形式表示。定义一个操作 为首先选择 S 的两个连续且非空的特殊的子串,然后将它们交换。(两个子串为连续的当且仅当第一个子串的最后一个字符恰好为第二个子串的第一个字符的前一个字符。)在任意次数的操作之后,交换后的字符串按照字典序排列的最大的结果是什么?示例 1:输入: S = “11011000”输出: “11原创 2020-07-12 16:01:37 · 305 阅读 · 0 评论 -
LeetCode解析------803.打砖块-并查集
题目:我们有一组包含1和0的网格;其中1表示砖块。 当且仅当一块砖直接连接到网格的顶部,或者它至少有一块相邻(4 个方向之一)砖块不会掉落时,它才不会落下。我们会依次消除一些砖块。每当我们消除 (i, j) 位置时, 对应位置的砖块(若存在)会消失,然后其他的砖块可能因为这个消除而落下。返回一个数组表示每次消除操作对应落下的砖块数目。示例 1:输入: grid = [[1,0,0,0],[1,1,1,0]] hits = [[1,0]]输出: [2]解释: 如果我们消除(1,0)位置的砖块原创 2020-07-11 09:57:24 · 350 阅读 · 0 评论 -
LeetCode解析------1178.猜字谜-位运算
题目:外国友人仿照中国字谜设计了一个英文版猜字谜小游戏,请你来猜猜看吧。字谜的迷面 puzzle 按字符串形式给出,如果一个单词 word 符合下面两个条件,那么它就可以算作谜底:单词 word 中包含谜面 puzzle 的第一个字母。单词 word 中的每一个字母都可以在谜面 puzzle 中找到。例如,如果字谜的谜面是 “abcdefg”,那么可以作为谜底的单词有 “faced”, “cabbage”, 和 “baggage”;而 “beefed”(不含字母 “a”)以及 “based”(其中原创 2020-07-02 13:20:37 · 320 阅读 · 0 评论 -
LeetCode解析------765.情侣牵手-贪心算法
题目:N 对情侣坐在连续排列的 2N 个座位上,想要牵到对方的手。 计算最少交换座位的次数,以便每对情侣可以并肩坐在一起。 一次交换可选择任意两人,让他们站起来交换座位。人和座位用 0 到 2N-1 的整数表示,情侣们按顺序编号,第一对是 (0, 1),第二对是 (2, 3),以此类推,最后一对是 (2N-2, 2N-1)。这些情侣的初始座位 row[i] 是由最初始坐在第 i 个座位上的人决定的。示例 1:输入: row = [0, 2, 1, 3] 输出: 1解释: 我们只需要交换row原创 2020-06-08 13:36:58 · 677 阅读 · 1 评论 -
LeetCode解析------329.矩阵中的最长递增路径-记忆化
题目:给定一个整数矩阵,找出最长递增路径的长度。对于每个单元格,你可以往上,下,左,右四个方向移动。 你不能在对角线方向上移动或移动到边界外(即不允许环绕)。示例 1:输入: nums =[[9,9,4],[6,6,8],[2,1,1]]输出: 4解释: 最长递增路径为 [1, 2, 6, 9]。示例 2:输入: nums =[[3,4,5],[3,2,6],[2,2,1]]输出: 4解释: 最长递增路径是 [3, 4, 5, 6]。注意不允许在对角线方向上移动。简原创 2020-06-06 13:19:36 · 192 阅读 · 1 评论 -
LeetCode解析------18.四数之和-双指针
题目:给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例:给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。满足要求的四元组集合为: [ [-1, 0, 0, 1], [-2, -1, 1, 2], [-2, 0, 0, 2]原创 2020-05-31 14:27:36 · 143 阅读 · 0 评论