![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
刷穿 LeetCode
文章平均质量分 85
宫水三叶的刷题日记
原创文章公众号: 「宫水三叶的刷题日记 」。每天十分钟,快乐学算法 ~
展开
-
【剑指 の 精选】详解「二叉树中序遍历的下一个结点」两种解法
题目描述这是「牛客网」上的「JZ 57 二叉树的下一个结点」,难度为「中等」。Tag : 「剑指 Offer」、「二叉树」、「中序遍历」给定一个二叉树其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的 next 指针。下图为一棵有 个节点的二叉树。树中从父节点指向子节点的指针用实线表示,从子节点指向父节点的用虚线表示。示例:输入:{8,6,10,5,7,9,11},8返回:9解析:这个组装传入的子树根节点,其实就是整颗树,中序遍历{5,原创 2021-07-09 13:46:32 · 617 阅读 · 5 评论 -
【剑指 の 精选】从宏观角度看「对称二叉树」问题
题目描述这是「牛客网」上的「JZ 58 对称的二叉树」,难度为「困难」。Tag : 「剑指 Offer」、「二叉树」、「层序遍历」、「迭代」、「递归」描述:请实现一个函数,用来判断一棵二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。示例1输入:{8,6,6,5,7,7,5}返回值:true示例2输入:{8,6,9,5,7,7,5}返回值:false要求:时间:1 s空间:64 M基本思想首先要明确,题目所定义的 “对称” 是对每层而言,同时考虑空节点。因此,如果原创 2021-07-09 13:40:49 · 126 阅读 · 2 评论 -
【剑指 の 精选】详解「删除链表中重复结点」的两种解法
题目描述这是「牛客网」上的「JZ 56 删除链表中重复的结点」,难度为「较难」 。Tag : 「剑指 Offer」、「链表」、「单链表」在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。例如,链表 1->2->3->3->4->4->5 处理后为 1->2->5示例 1:输入:{1,2,3,3,4,4,5}返回值:{1,2,5}要求:时间:1 s空间:64 M迭代解法首先一个比较「直观且通用」的思路是,采用「原创 2021-07-09 11:58:59 · 232 阅读 · 0 评论 -
【剑指 の 精选】从宏观角度看「对称二叉树」问题
题目描述这是「牛客网」上的「JZ 58 对称的二叉树」,难度为「困难」。Tag : 「剑指 Offer」、「二叉树」、「层序遍历」、「迭代」、「递归」描述:请实现一个函数,用来判断一棵二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。示例1输入:{8,6,6,5,7,7,5}返回值:true示例2输入:{8,6,9,5,7,7,5}返回值:false要求:时间:1 s空间:64 M基本思想首先要明确,题目所定义的 “对称” 是对每层而言,同时考虑空节点。因此,如果原创 2021-07-06 11:01:37 · 109 阅读 · 0 评论 -
从更本质的角度去看「加油站」问题
题目描述这是 LeetCode 上的 「134. 加油站」 ,难度为 「中等」。在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。说明:如果题目有解,该答案即为唯一答案。输入数组均原创 2021-06-29 12:13:17 · 184 阅读 · 1 评论 -
【综合笔试题】难度 3/5,多解法 LIS 问题
题目描述这是 LeetCode 上的 「354. 俄罗斯套娃信封问题」 ,难度为 「困难」。给你一个二维整数数组 envelopes ,其中 envelopes[i] = [wi, hi] ,表示第 i 个信封的宽度和高度。当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样。请计算「最多能有多少个」信封能组成一组“俄罗斯套娃”信封(即可以把一个信封放到另一个信封里面)。注意:不允许旋转信封。示例 1:输入:envelopes = [[5,4]原创 2021-06-29 12:11:54 · 293 阅读 · 1 评论 -
【综合笔试题】难度 2.5/5,结合了「DP」和「回溯」的经典回文串题目
题目描述这是 LeetCode 上的 「131. 分割回文串」 ,难度为 「中等」。给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是「回文串」。返回 s 所有可能的分割方案。回文串 是正着读和反着读都一样的字符串。示例 1:输入:s = "aab"输出:[["a","a","b"],["aa","b"]]示例 2:输入:s = "a"输出:[["a"]]提示:1 <= s.length <= 16s 仅由小写英文字母组成动态规划 + 回溯算法求所有的原创 2021-06-24 11:17:24 · 200 阅读 · 1 评论 -
【动态规划/背包问题】背包问题第一阶段最终章:混合背包问题
前言今天是我们讲解 动态规划专题 中的「背包问题」的第十一篇。今天将会学习「混合背包」问题,同时也是我们「背包问题」的第一阶段的最后一节。今天首先会和大家回顾之前学过的三种背包问题。然后通过一道「混合背包」问题,来将我们之前学的几种背包问题串联起来。希望通过本篇内容,大家会对背包问题有更清晰的认识。另外,我在文章结尾处列举了我所整理的关于背包问题的相关题目。背包问题我会按照编排好的顺序进行讲解(每隔几天更新一篇,确保大家消化)。你也先可以尝试做做,也欢迎你向我留言补充,你觉得与背包相关的 DP 类型题目 ~原创 2021-06-22 10:44:44 · 383 阅读 · 0 评论 -
最全 LeetCode 背包问题目录(持续更新)
背包问题(目录)01背包 : 背包问题 第一讲【练习】01背包 : 背包问题 第二讲(416. 分割等和子集)【学习&练习】01背包 : 背包问题 第三讲(416. 分割等和子集)完全背包 : 背包问题 第四讲【练习】完全背包 : 背包问题 第五讲(279. 完全平方数)【练习】完全背包 : 背包问题 第六讲(322. 零钱兑换)【练习】完全背包 : 背包问题 第七讲(518. 零钱兑换 II)多重背包 : 背包问题 第八讲多重背包(优化原创 2021-06-21 17:15:11 · 1487 阅读 · 0 评论 -
【设计数据结构】实现一个 LFUCache
题目描述这是 LeetCode 上的 「460. LFU 缓存」 ,难度为 「困难」。Tag : 「链表」、「双向链表」、「设计」请你为 「最不经常使用(LFU)」 缓存算法设计并实现数据结构。实现 LFUCache 类:LFUCache(int capacity) - 用数据结构的容量 capacity 初始化对象int get(int key) - 如果键存在于缓存中,则获取键的值,否则返回 -1。void put(int key, int value) - 如果键已存在,原创 2021-06-21 11:52:21 · 351 阅读 · 1 评论 -
【科学派】一份关于「如何刷题」的究极指南
刷题指南各位六一节快乐呀 ????我经常会在后台收到不少小伙伴的留言,不知道该如何开始刷题。确实人的精力是有限的,盲目地从「任意起点」出发很难到达目的地。因此一份【科学派】的刷题指南尤其重要。我花了两周的时间,将写过的题解按照「自定义」的 做了分类,并结合「面经出现频率」与「个人审美」对题目做了评级。目前是以 Wiki 的形式做成刷题推荐入口:几个标签的作用一目了然:题目:跳转 LeetCode 的原题题解:跳转 LeetCode 的题解区难度:几乎与 LeetCode 难度一致,部分题目我觉得不合理的话原创 2021-06-17 16:33:16 · 494 阅读 · 1 评论 -
【设计数据结构】实现一个 LRUCache
题目描述这是 LeetCode 上的 「146. LRU 缓存机制」 ,难度为 「中等」。运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制 。实现 LRUCache 类:LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。void put(int key, int value) 如果关键字已经存在,原创 2021-06-17 16:28:58 · 918 阅读 · 1 评论 -
【图论搜索专题】如何使用「双向 BFS」解决搜索空间爆炸问题
题目描述这是 LeetCode 上的 「127. 单词接龙」 ,难度为 「困难」。Tag : 「双向 BFS」字典 wordList 中从单词 beginWord 和 endWord 的 转换序列 是一个按下述规格形成的序列:序列中第一个单词是 beginWord 。序列中最后一个单词是 endWord 。每次转换只能改变一个字母。转换过程中的中间单词必须是字典 wordList 中的单词。给你两个单词 beginWord 和 endWord 和一个字典 wordList ,找到从 beginWord 到原创 2021-06-17 16:02:07 · 320 阅读 · 1 评论 -
【综合笔试题】难度 3/5,挺有意思的一道题(既可图论,也可贪心)
题目描述这是 LeetCode 上的「765. 情侣牵手」,难度为 「Hard」。 对情侣坐在连续排列的 个座位上,想要牵到对方的手。计算最少交换座位的次数,以便每对情侣可以并肩坐在一起。一次交换可选择任意两人,让他们站起来交换座位。人和座位用 到 的整数表示,情侣们按顺序编号,第一对是 ,第二对是 ,以此类推,最后一对是 。这些情侣的初始座位 是由最初始坐在第 个座位上的人决定的。示例 1:输入: 原创 2021-05-24 15:56:54 · 120 阅读 · 1 评论 -
【每日算法/刷穿 LeetCode】35. 搜索插入位置(简单)
点击 这里 可以查看更多算法面试相关内容~题目描述给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0朴素做法这是一道模拟题。只需要从前往后处理一遍即可。基.原创 2021-02-20 16:11:50 · 171 阅读 · 0 评论 -
【每日算法/刷穿 LeetCode】34. 在排序数组中查找元素的第一个和最后一个位置(中等)
点击 这里 可以查看更多算法面试相关内容~题目描述给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。进阶:你可以设计并实现时间复杂度为 O(log n) 的算法解决此问题吗?示例 1:输入:nums = [5,7,7,8,8,10], target = 8输出:[3,4]示例 2:输入:nums = [5,7,7,8,8,10], target = 6.原创 2021-02-20 16:10:58 · 133 阅读 · 0 评论 -
【每日算法/刷穿 LeetCode】33. 搜索旋转排序数组(中等)
点击 这里 可以查看更多算法面试相关内容~题目描述升序排列的整数数组 nums 在预先未知的某个点上进行了旋转例如, [0,1,2,4,5,6,7] 经旋转后可能变为 [4,5,6,7,0,1,2] 。请你在数组中搜索 target ,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。示例 1:输入:nums = [4,5,6,7,0,1,2], target = 0输出:4示例 2:输入:nums = [4,5,6,7,0,1,2], target = 3输出:-1.原创 2021-02-20 16:10:02 · 167 阅读 · 0 评论 -
【每日算法/刷穿 LeetCode】32. 最长有效括号(困难)
点击 这里 可以查看更多算法面试相关内容~题目描述给你一个只包含 '(' 和 ')' 的字符串,找出最长有效(格式正确且连续)括号子串的长度。示例 1:输入:s = "(()"输出:2解释:最长有效括号子串是 "()"示例 2:输入:s = ")()())"输出:4解释:最长有效括号子串是 "()()"示例 3:输入:s = ""输出:0提示:0 <= s.length <= 3 * 104s[i] 为 '(' 或 ')'栈解法从前往后扫描字符.原创 2021-02-20 16:09:19 · 162 阅读 · 0 评论 -
【每日算法/刷穿 LeetCode】31. 下一个排列(中等)
点击 这里 可以查看更多算法面试相关内容~题目描述实现获取 下一个排列 的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须 原地 修改,只允许使用额外常数空间。示例 1:输入:nums = [1,2,3]输出:[1,3,2]示例 2:输入:nums = [3,2,1]输出:[1,2,3]示例 3:输入:nums = [1,1,5]输出:[1,5,1]示例 4:输入:nums =.原创 2021-02-20 16:08:39 · 172 阅读 · 0 评论 -
【每日算法/刷穿 LeetCode】30. 串联所有单词的子串(困难)
点击 这里 可以查看更多算法面试相关内容~题目描述给定一个字符串 s 和一些长度相同的单词 words。找出 s 中恰好可以由 words 中所有单词串联形成的子串的起始位置。注意子串要与 words 中的单词完全匹配,中间不能有其他字符,但不需要考虑 words 中单词串联的顺序。示例 1:输入: s = "barfoothefoobarman", words = ["foo","bar"]输出:[0,9]解释:从索引 0 和 9 开始的子串分别是 "barfoo" 和 "fo.原创 2021-02-20 16:07:53 · 206 阅读 · 0 评论 -
【每日算法/刷穿 LeetCode】29. 两数相除(中等)
点击 这里 可以查看更多算法面试相关内容~题目描述给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2示例 1:输入: dividend = 10, divisor = 3输出: 3解释: 10/3 = trun.原创 2021-02-06 22:03:52 · 133 阅读 · 0 评论 -
【每日算法/刷穿 LeetCode】28. 实现 strStr()(简单)
点击 这里 可以查看更多算法面试相关内容~题目描述实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystack = "aaaaa", needle = "bba"输出: -1说明:当 needle 是空字.原创 2021-02-06 21:52:17 · 254 阅读 · 1 评论 -
【每日算法/刷穿 LeetCode】27. 移除元素(简单)
点击 这里 可以查看更多算法面试相关内容~题目描述给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。示.原创 2021-02-06 21:49:51 · 118 阅读 · 2 评论 -
【每日算法/刷穿 LeetCode】26. 删除排序数组中的重复项(简单)
点击 这里 可以查看更多算法面试相关内容~题目描述给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1)O(1)O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nums = [0,0,1,.原创 2021-02-06 21:48:40 · 88 阅读 · 0 评论 -
【每日算法/刷穿 LeetCode】25. K 个一组翻转链表(困难)
题目描述给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。示例:给你这个链表:1->2->3->4->5当 k = 2 时,应当返回: 2->1->4->3->5当 k = 3 时,应当返回: 3->2->1->4->5说明:你的算法只能使用常数的额外空间。你不能只是单纯的改变节点内部的值原创 2021-02-06 21:47:25 · 120 阅读 · 0 评论 -
【每日算法/刷穿 LeetCode】1423. 可获得的最大点数(中等)
题目描述几张卡牌 排成一行,每张卡牌都有一个对应的点数。点数由整数数组 nums 给出。每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿 k 张卡牌。你的点数就是你拿到手中的所有卡牌的点数之和。给你一个整数数组 nums 和整数 k,请你返回可以获得的最大点数。示例 1:输入:nums = [1,2,3,4,5,6,1], k = 3输出:12解释:第一次行动,不管拿哪张牌,你的点数总是 1 。但是,先拿最右边的卡牌将会最大化你的可获得点数。最优策略是拿右边的三原创 2021-02-06 12:45:00 · 178 阅读 · 0 评论 -
【每日算法/刷穿 LeetCode】24. 两两交换链表中的节点(中等)
点击 这里 可以查看更多算法面试相关内容~题目描述给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例 1:输入:head = [1,2,3,4]输出:[2,1,4,3]示例 2:输入:head = []输出:[]示例 3:输入:head = [1]输出:[1]提示:链表中节点的数目在范围 [0, 100] 内0 <= Node.val <= 100递归解法(哨兵技巧)哨兵技.原创 2021-02-05 23:38:22 · 145 阅读 · 0 评论 -
【每日算法/刷穿 LeetCode】23. 合并K个升序链表(困难)
点击 这里 可以查看更多算法面试相关内容~题目描述给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。示例 1:输入:lists = [[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5,6]解释:链表数组如下:[ 1->4->5, 1->3->4, 2->6]将它们合并到一个有序链表中得到。1->1->2->3->4->4->5-.原创 2021-02-04 16:17:20 · 93 阅读 · 0 评论 -
【刷穿 LeetCode】480. 滑动窗口中位数(困难)
点击 这里 可以查看更多算法面试相关内容~题目描述中位数是有序序列最中间的那个数。如果序列的长度是偶数,则没有最中间的数;此时中位数是最中间的两个数的平均数。例如:[2,3,4],中位数是 3[2,3],中位数是 (2 + 3) / 2 = 2.5给你一个数组 nums,有一个长度为 k 的窗口从最左端滑动到最右端。窗口中有 k 个数,每次窗口向右移动 1 位。你的任务是找出每次窗口移动后得到的新窗口中元素的中位数,并输出由它们组成的数组。示例:给出 nums = [1,3,-.原创 2021-02-03 21:22:08 · 137 阅读 · 0 评论 -
【刷穿 LeetCode】21. 合并两个有序链表(简单)
点击 这里 可以查看更多算法面试相关内容~题目描述将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例 1:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例 2:输入:l1 = [], l2 = []输出:[]示例 3:输入:l1 = [], l2 = [0]输出:[0]提示:两个链表的节点数目范围是 [0, 50]-100 <= Node.val <= 100.原创 2021-02-03 17:47:29 · 135 阅读 · 0 评论 -
【刷穿 LeetCode】20. 有效的括号(简单)
题目描述给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(]"输出: false示例 4:输入: "([)]"输出: false示例 5:输入: "{[]}"输出: true栈 +原创 2021-02-02 11:04:34 · 122 阅读 · 0 评论 -
【刷穿 LeetCode】19. 删除链表的倒数第 N 个结点(中等)
题目描述给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。进阶:你能尝试使用一趟扫描实现吗?示例 1:输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]示例 2:输入:head = [1], n = 1输出:[]示例 3:输入:head = [1,2], n = 1输出:[1]提示:链表中结点的数目为 sz1 <= sz <= 300 <= Node.val <= 1001 <= n <原创 2021-02-02 10:59:15 · 92 阅读 · 0 评论 -
【刷穿 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原创 2021-02-02 10:55:20 · 140 阅读 · 0 评论 -
【刷穿 LeetCode】17. 电话号码的字母组合(中等)
题目描述给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。DFS 回溯解法对于字符串 ds 中的每一位数字,都有其对应的字母映射数组。在 DFS 中决策每一位数字应该对应哪一个字母,当决策的位数原创 2021-02-02 10:52:47 · 146 阅读 · 0 评论 -
【刷穿 LeetCode】16. 最接近的三数之和(中等)
题目描述给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。示例:输入:nums = [-1,2,1,-4], target = 1输出:2解释:与 target 最接近的和是 2 (-1 + 2 + 1 = 2) 。提示:3 <= nums.length <= 10^3-10^3 <= nums[i] <= 10^3-10^4原创 2021-02-02 10:50:14 · 113 阅读 · 0 评论 -
【每日算法/刷穿 LeetCode】15. 三数之和(中等)
题目描述给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例 2:输入:nums = []输出:[]示例 3:输入:nums = [0]输出:[]提示:0 <= nums.length <= 3000原创 2021-02-02 10:47:56 · 211 阅读 · 0 评论 -
【每日算法/刷穿 LeetCode】14. 最长公共前缀(简单)
题目描述编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入:strs = ["flower","flow","flight"]输出:"fl"示例 2:输入:strs = ["dog","racecar","car"]输出:""解释:输入不存在公共前缀。提示:0 <= strs.length <= 2000 <= strs[i].length <= 200strs[i] 仅由小写英文字母组成朴素解法原创 2021-02-02 10:46:14 · 96 阅读 · 0 评论 -
【刷穿 LeetCode】13. 罗马数字转整数(简单)
题目描述罗马数字包含以下七种字符: 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原创 2021-02-02 10:45:03 · 114 阅读 · 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原创 2021-02-02 10:38:39 · 102 阅读 · 1 评论 -
【每日算法/刷穿 LeetCode】11. 盛最多水的容器(中等)
题目描述给你 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:输原创 2021-02-02 10:34:29 · 154 阅读 · 0 评论