Leetcode每日一题
文章平均质量分 65
热心市民AJie
May you be gentle and firm.
展开
-
【LeetCode每日一题】371. 两整数之和
371. 两整数之和题目示例关键思路代码实现运行结果总结反思链接题目给你两个整数 a 和 b ,不使用 运算符 + 和 - ,计算并返回两整数之和。示例示例1输入: a = 1, b = 2输出: 3示例2输入: a = 2, b = 3输出: 5关键思路对 Python 比较熟悉,所以直接想到 sum() 函数,可以计算列表中数字的总和。代码实现class Solution(object): def getSum(self, a, b):原创 2021-09-26 11:26:21 · 305 阅读 · 0 评论 -
【LeetCode每日一题】583. 两个字符串的删除操作
583. 两个字符串的删除操作题目示例关键思路代码实现运行结果总结反思链接题目给定两个单词 word1 和 word2,找到使得 word1 和 word2 相同所需的最小步数,每步可以删除任意一个字符串中的一个字符。示例示例输入: “sea”, “eat”输出: 2解释: 第一步将"sea"变为"ea",第二步将"eat"变为"ea"关键思路可以先求出两个字符串的最长公共字串,我们用到动态规划的思想进行求解。代码实现class Solution(object):原创 2021-09-25 21:31:07 · 238 阅读 · 0 评论 -
【LeetCode每日一题】430. 扁平化多级双向链表
430. 扁平化多级双向链表题目示例关键思路代码实现运行结果总结反思链接题目多级双向链表中,除了指向下一个节点和前一个节点指针之外,它还有一个子链表指针,可能指向单独的双向链表。这些子列表也可能会有一个或多个自己的子项,依此类推,生成多级数据结构,如下面的示例所示。给你位于列表第一级的头节点,请你扁平化列表,使所有结点出现在单级双链表中。示例示例1输入: head = [1,2,3,4,5,6,null,null,null,7,8,9,10,null,null,11,12]输出: [1,原创 2021-09-24 21:44:00 · 263 阅读 · 0 评论 -
【LeetCode每日一题】326. 3的幂
326. 3的幂题目示例关键思路代码实现运行结果总结反思链接题目给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false 。整数 n 是 3 的幂次方需满足:存在整数 x 使得 n == 3^x 示例示例1输入: n = 27输出: true示例2输入: n = 0输出: false示例2输入: n = 9输出: true示例2输入: n = 45输出: false关键思路我们采用递归的方法来解决问题。原创 2021-09-23 13:52:52 · 293 阅读 · 0 评论 -
【LeetCode每日一题】725. 分隔链表
725. 分隔链表题目示例关键思路代码实现运行结果总结反思链接题目给你一个头结点为 head 的单链表和一个整数 k ,请你设计一个算法将链表分隔为 k 个连续的部分。每部分的长度应该尽可能的相等:任意两部分的长度差距不能超过 1 。这可能会导致有些部分为 null 。这 k 个部分应该按照在链表中出现的顺序排列,并且排在前面的部分的长度应该大于或等于排在后面的长度。返回一个由上述 k 部分组成的数组。示例示例1输入: head = [1,2,3], k = 5输出: [[1],[2原创 2021-09-22 17:04:23 · 229 阅读 · 0 评论 -
【LeetCode每日一题】58. 最后一个单词的长度
58. 最后一个单词的长度题目示例关键思路代码实现运行结果总结反思链接题目给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。示例示例1输入: s = “Hello World”输出: 5示例2输入: s = " fly me to the moon "输出: 4示例3输入: s = “luffy is still joyboy”输出: 6关键思路原创 2021-09-21 14:05:49 · 127 阅读 · 0 评论 -
【LeetCode每日一题】673. 最长递增子序列的个数
673. 最长递增子序列的个数题目示例关键思路代码实现运行结果总结反思链接题目给定一个未排序的整数数组,找到最长递增子序列的个数。 示例示例1输入: [1,3,5,4,7]输出: 2解释: 有两个最长递增子序列,分别是 [1, 3, 4, 7] 和[1, 3, 5, 7]。示例2输入:[2,2,2,2,2]输出:5解释: 最长递增子序列的长度是1,并且存在5个子序列的长度为1,因此输出5。关键思路使用动态规划思想解决,本题为原题的升级版,可以一边求解dp,一边计算当前原创 2021-09-21 00:02:11 · 148 阅读 · 0 评论 -
【LeetCode每日一题】650. 只有两个键的键盘
650. 只有两个键的键盘题目示例关键思路代码实现运行结果总结反思链接题目最初记事本上只有一个字符 ‘A’ 。你每次可以对这个记事本进行两种操作:Copy All(复制全部):复制这个记事本中的所有字符(不允许仅复制部分字符)。Paste(粘贴):粘贴 上一次 复制的字符。给你一个数字 n ,你需要使用最少的操作次数,在记事本上输出 恰好 n 个 ‘A’ 。返回能够打印出 n 个 ‘A’ 的最少操作次数。 示例示例1输入: n = 3输出: 3解释: 最初, 只有一个字符 ‘A原创 2021-09-19 23:15:35 · 148 阅读 · 0 评论 -
【LeetCode每日一题】292. Nim 游戏
292. Nim 游戏题目示例关键思路代码实现运行结果总结反思链接题目你和你的朋友,两个人一起玩 Nim 游戏:桌子上有一堆石头。你们轮流进行自己的回合,你作为先手。每一回合,轮到的人拿掉 1 - 3 块石头。拿掉最后一块石头的人就是获胜者。假设你们每一步都是最优解。请编写一个函数,来判断你是否可以在给定石头数量为 n 的情况下赢得游戏。如果可以赢,返回 true;否则,返回 false 。示例示例1输入: n = 4输出: False解释: 如果堆中有 4 块石头,那么你原创 2021-09-18 18:54:14 · 745 阅读 · 0 评论 -
【LeetCode每日一题】36. 有效的数独
36. 有效的数独题目示例关键思路代码实现运行结果总结反思链接题目请你判断一个 9x9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。数独部分空格内已填入了数字,空白格用 ‘.’ 表示。注意:一个有效的数独(部分已被填充)不一定是可解的。只需要根据以上规则,验证已经填入的数字是否有效即可。示例示例1输入:boa原创 2021-09-17 11:31:43 · 132 阅读 · 0 评论 -
【Leetcode每日一题】212. 单词搜索 II
212. 单词搜索 II题目示例代码实现运行结果链接题目给定一个 m x n 二维字符网格 board 和一个单词(字符串)列表 words,找出所有同时在二维网格和字典中出现的单词。单词必须按照字母顺序,通过 相邻的单元格 内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母在一个单词中不允许被重复使用。示例示例1输入:board = [[“o”,“a”,“a”,“n”],[“e”,“t”,“a”,“e”],[“i”,“h”,“k”,“r”],[“i”,原创 2021-09-16 12:09:21 · 88 阅读 · 0 评论 -
【Leetcode每日一题】162. 寻找峰值
162. 寻找峰值题目示例关键思路代码实现运行结果链接题目峰值元素是指其值严格大于左右相邻值的元素。给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。你可以假设 nums[-1] = nums[n] = -∞ 。你必须实现时间复杂度为 O(log n) 的算法来解决此问题。示例示例1输入:nums = [1,2,3,1]输出:2解释:3 是峰值元素,你的函数应该返回其索引 2。示例2输入:nums =原创 2021-09-15 16:07:45 · 125 阅读 · 0 评论 -
【Leetcode每日一题】524. 通过删除字母匹配到字典里最长单词
524. 通过删除字母匹配到字典里最长单词题目示例关键思路代码实现运行结果实验心得链接题目给你一个字符串 s 和一个字符串数组 dictionary 作为字典,找出并返回字典中最长的字符串,该字符串可以通过删除 s 中的某些字符得到。如果答案不止一个,返回长度最长且字典序最小的字符串。如果答案不存在,则返回空字符串。 示例示例1输入:s = “abpcplea”, dictionary = [“ale”,“apple”,“monkey”,“plea”]输出:“apple”示例2输原创 2021-09-14 21:22:14 · 371 阅读 · 0 评论 -
【Leetcode每日一题】502. IPO
1221. 分割平衡字符串题目示例关键思路代码实现运行结果链接题目假设 力扣(LeetCode)即将开始 IPO 。为了以更高的价格将股票卖给风险投资公司,力扣 希望在 IPO 之前开展一些项目以增加其资本。 由于资源有限,它只能在 IPO 之前完成最多 k 个不同的项目。帮助 力扣 设计完成最多 k 个不同项目后得到最大总资本的方式。给你 n 个项目。对于每个项目 i ,它都有一个纯利润 profits[i] ,和启动该项目需要的最小资本 capital[i] 。最初,你的资本为 w 。当你完成原创 2021-09-08 22:41:05 · 138 阅读 · 0 评论 -
【Leetcode每日一题】1221. 分割平衡字符串
1221. 分割平衡字符串题目示例关键思路代码实现运行结果链接题目在一个 平衡字符串 中,‘L’ 和 ‘R’ 字符的数量是相同的。给你一个平衡字符串 s,请你将它分割成尽可能多的平衡字符串。注意:分割得到的每个字符串都必须是平衡字符串。返回可以通过分割得到的平衡字符串的 最大数量 。示例示例1输入:s = “RLRRLLRLRL”输出:4解释:s 可以分割为 “RL”、“RRLL”、“RL”、“RL” ,每个子字符串中都包含相同数量的 ‘L’ 和 ‘R’ 。示例2输入:s原创 2021-09-07 22:57:17 · 217 阅读 · 0 评论 -
【Leetcode每日一题】881. 救生艇
881. 救生艇题目示例关键思路代码实现运行结果链接题目第 i 个人的体重为 people[i],每艘船可以承载的最大重量为 limit。每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit。返回载到每一个人所需的最小船数。(保证每个人都能被船载)。示例示例1输入:people = [1,2], limit = 3输出:1解释:1 艘船载 (1, 2)示例2输入:people = [3,2,2,1], limit = 3输出:3解释:3 艘船分别载 (1,原创 2021-08-26 17:07:25 · 144 阅读 · 0 评论 -
【Leetcode每日一题】797. 所有可能的路径
797. 所有可能的路径题目示例关键思路代码实现运行结果链接题目给你一个有 n 个节点的 有向无环图(DAG),请你找出所有从节点 0 到节点 n-1 的路径并输出(不要求按特定顺序)二维数组的第 i 个数组中的单元都表示有向图中 i 号节点所能到达的下一些节点,空就是没有下一个结点了。译者注:有向图是有方向的,即规定了 a→b 你就不能从 b→a 。示例示例1输入: graph = [[1,2],[3],[3],[]]输出: [[0,1,3],[0,2,3]]解释: 有两条路径 0原创 2021-08-25 20:59:51 · 591 阅读 · 0 评论 -
【Leetcode每日一题】787. K 站中转内最便宜的航班
787. K 站中转内最便宜的航班题目示例关键思路代码实现运行结果链接题目有 n 个城市通过一些航班连接。给你一个数组 flights ,其中 flights[i] = [from(i), to(i), price(i)] ,表示该航班都从城市 fromi 开始,以价格 price(i) 抵达 to(i)。现在给定所有的城市和航班,以及出发城市 src 和目的地 dst,你的任务是找到出一条最多经过 k 站中转的路线,使得从 src 到 dst 的 价格最便宜 ,并返回该价格。 如果不存在这样的路线原创 2021-08-24 23:24:01 · 170 阅读 · 0 评论 -
【Leetcode每日一题】1646. 获取生成数组中的最大值
1646. 获取生成数组中的最大值题目示例关键思路代码实现运行结果链接题目给你一个整数 n 。按下述规则生成一个长度为 n + 1 的数组 nums :nums[0] = 0nums[1] = 1当 2 <= 2 * i <= n 时,nums[2 * i] = nums[i]当 2 <= 2 * i + 1 <= n 时,nums[2 * i + 1] = nums[i] + nums[i + 1]返回生成数组 nums 中的 最大 值。 示例示例1输原创 2021-08-23 20:35:11 · 78 阅读 · 0 评论 -
【Leetcode每日一题】789. 逃脱阻碍者
789. 逃脱阻碍者题目示例关键思路代码实现运行结果链接题目你在进行一个简化版的吃豆人游戏。你从 [0, 0] 点开始出发,你的目的地是 target = [x, y] 。地图上有一些阻碍者,以数组 ghosts 给出,第 i 个阻碍者从 ghosts[i] = [xi, yi] 出发。所有输入均为 整数坐标 。每一回合,你和阻碍者们可以同时向东,西,南,北四个方向移动,每次可以移动到距离原位置 1 个单位 的新位置。当然,也可以选择 不动 。所有动作 同时 发生。如果你可以在任何阻碍者抓住你 之原创 2021-08-22 21:57:30 · 128 阅读 · 0 评论 -
【Leetcode每日一题】443. 压缩字符串
443. 压缩字符串题目示例关键思路代码实现运行结果链接题目给你一个字符数组 chars ,请使用下述算法压缩:从一个空字符串 s 开始。对于 chars 中的每组 连续重复字符 :如果这一组长度为 1 ,则将字符追加到 s 中。否则,需要向 s 追加字符,后跟这一组的长度。压缩后得到的字符串 s 不应该直接返回 ,需要转储到字符数组 chars 中。需要注意的是,如果组长度为 10 或 10 以上,则在 chars 数组中会被拆分为多个字符。请在 修改完输入数组后 ,返回该数组的新长度原创 2021-08-21 23:13:53 · 323 阅读 · 0 评论 -
【Leetcode每日一题】541. 反转字符串 II
541. 反转字符串 II题目示例关键思路代码实现运行结果改进思路链接题目给定一个字符串 s 和一个整数 k,从字符串开头算起,每 2k 个字符反转前 k 个字符。如果剩余字符少于 k 个,则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。示例示例1输入: s = “abcdefg”, k = 2输出: “bacdfeg”示例2输入: s = “abcd”, k = 2输出: “bacd”关键思路输入字符串原创 2021-08-20 23:11:15 · 105 阅读 · 0 评论 -
【Leetcode每日一题】用两个栈实现队列
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2021-08-19 16:19:53 · 149 阅读 · 0 评论