![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
力扣每日一题
Pycro
这个作者很懒,什么都没留下…
展开
-
【力扣】56.合并区间
以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [start。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。原创 2023-04-22 11:12:53 · 162 阅读 · 0 评论 -
【力扣每日一题】1470. 重新排列数组
1470. 重新排列数组原创 2022-08-29 08:55:48 · 149 阅读 · 0 评论 -
【力扣每日一题】1175. 质数排列
请你帮忙给从 到 的数设计排列方案,使得所有的「质数」都应该被放在「质数索引」(索引从 1 开始)上;你需要返回可能的方案总数。让我们一起来回顾一下「质数」:质数一定是大于 1 的,并且不能用两个小于它的正整数的乘积来表示。由于答案可能会很大,所以请你返回答案 模 mod 10^9 + 7 之后的结果即可。示例 1:示例 2:提示:知道怎么写,但关键我在写阶乘时,先入为主地认为,阶乘最好用递归算出来,但当初学递归时,只是用阶乘作为例子便于理解, 其实阶乘最简单是用for循环写,方便又快捷。而用递归不原创 2022-06-30 10:00:24 · 92 阅读 · 0 评论 -
【力扣每日一题】535. TinyURL 的加密与解密
难度中等168TinyURL 是一种 URL 简化服务, 比如:当你输入一个 URL 时,它将返回一个简化的URL 。请你设计一个类来加密与解密 TinyURL 。加密和解密算法如何设计和运作是没有限制的,你只需要保证一个 URL 可以被加密成一个 TinyURL ,并且这个 TinyURL 可以用解密方法恢复成原本的 URL 。实现 类:示例:提示:这里有一句话:加密和解密的方法没有限制,那我不加密(零加密),直接返回,岂不是也行?于是我利用这个漏洞光速过完这题。但还是要看一下正规解法。官方给了三原创 2022-06-29 09:59:37 · 1046 阅读 · 0 评论 -
【力扣每日一题】198. 打家劫舍
难度中等69假如有一排房子,共 个,每个房子可以被粉刷成红色、蓝色或者绿色这三种颜色中的一种,你需要粉刷所有的房子并且使其相邻的两个房子颜色不能相同。当然,因为市场上不同颜色油漆的价格不同,所以房子粉刷成不同颜色的花费成本也是不同的。每个房子粉刷成不同颜色的花费是以一个 的正整数矩阵 来表示的。例如, 表示第 0 号房子粉刷成红色的成本花费; 表示第 1 号房子粉刷成绿色的花费,以此类推。请计算出粉刷完所有房子最少的花费成本。示例 1:示例 2:提示:直接抄作业。dp还是要多练练啊。...原创 2022-06-27 15:20:43 · 77 阅读 · 0 评论 -
【力扣每日一题】剑指 Offer II 091. 粉刷房子
难度中等69假如有一排房子,共 个,每个房子可以被粉刷成红色、蓝色或者绿色这三种颜色中的一种,你需要粉刷所有的房子并且使其相邻的两个房子颜色不能相同。当然,因为市场上不同颜色油漆的价格不同,所以房子粉刷成不同颜色的花费成本也是不同的。每个房子粉刷成不同颜色的花费是以一个 的正整数矩阵 来表示的。例如, 表示第 0 号房子粉刷成红色的成本花费; 表示第 1 号房子粉刷成绿色的花费,以此类推。请计算出粉刷完所有房子最少的花费成本。示例 1:示例 2:提示:直接抄作业。dp还是要多练练啊。...原创 2022-06-25 12:49:53 · 170 阅读 · 0 评论 -
【力扣每日一题】515. 在每个树行中找最大值
给定一棵二叉树的根节点 ,请找出该二叉树中每一层的最大值。示例1:示例2:提示:BFS。当然DFS也是可以的,用哈希表更新每一深度的最大值。原创 2022-06-24 10:11:00 · 57 阅读 · 0 评论 -
【力扣每日一题】513. 找树左下角的值
给定一个二叉树的 根节点 ,请找出该二叉树的 最底层 最左边 节点的值。假设二叉树中至少有一个节点。示例 1:示例 2:提示:BFS,我一下子只想到这个。于是参照我之前写的一个题目,把代码写了出来。然而这个看上去是很冗余的,因为我是从左到右去遍历,所以需要判断是不是左边第一个,如果换个思路,先加入右子节点,再加入左子节点,相当于从右到左遍历,那么就可以将最后一个节点作为返回值了。此即官方解法:复习了一下BFS。...原创 2022-06-22 14:29:15 · 76 阅读 · 0 评论 -
【力扣每日一题】1108. IP 地址无效化
IP 地址无效化原创 2022-06-21 09:48:30 · 87 阅读 · 0 评论 -
【力扣每日一题】508. 出现次数最多的子树元素和
出现次数最多的子树元素和原创 2022-06-19 10:11:27 · 82 阅读 · 0 评论 -
【力扣每日一题】1089. 复写零
复写零原创 2022-06-17 09:24:27 · 153 阅读 · 0 评论 -
【力扣每日一题】890. 查找和替换模式
查找和替换模式原创 2022-06-12 09:16:43 · 58 阅读 · 0 评论 -
【力扣每日一题】730. 统计不同回文子序列
统计不同回文子序列原创 2022-06-10 08:34:28 · 136 阅读 · 0 评论 -
【力扣每日一题】497. 非重叠矩形中的随机点
有效的回旋镖原创 2022-06-09 11:12:32 · 156 阅读 · 0 评论 -
【力扣每日一题】1037. 有效的回旋镖
有效的回旋镖原创 2022-06-08 12:17:17 · 78 阅读 · 0 评论 -
【力扣每日一题】875. 爱吃香蕉的珂珂
爱吃香蕉的珂珂原创 2022-06-07 10:36:36 · 278 阅读 · 0 评论 -
【力扣每日一题】732. 我的日程安排表 III
我的日程安排表 III原创 2022-06-06 10:47:56 · 153 阅读 · 0 评论 -
【力扣每日一题】478. 在圆内随机生成点
在圆内随机生成点原创 2022-06-05 10:11:13 · 189 阅读 · 0 评论 -
【力扣每日一题】929. 独特的电子邮件地址
独特的电子邮件地址原创 2022-06-04 13:40:59 · 229 阅读 · 0 评论 -
【力扣每日一题】829. 连续整数求和
连续整数求和原创 2022-06-03 12:32:56 · 232 阅读 · 0 评论 -
【力扣每日一题】450. 删除二叉搜索树中的节点
删除二叉搜索树中的节点原创 2022-06-02 17:04:39 · 111 阅读 · 0 评论 -
【力扣每日一题】1022. 从根到叶的二进制数之和
题目描述给出一棵二叉树,其上每个结点的值都是 0 或 1 。每一条从根到叶的路径都代表一个从最高有效位开始的二进制数。例如,如果路径为 0 -> 1 -> 1 -> 0 -> 1,那么它表示二进制数 01101,也就是 13 。对树上的每一片叶子,我们都要找出从根到该叶子的路径所表示的数字。返回这些数字之和。题目数据保证答案是一个 32 位 整数。示例 1:输入:root = [1,0,1,0,1,0,1]输出:22解释:(100) + (101) + (110原创 2022-05-30 09:24:18 · 109 阅读 · 0 评论 -
【力扣每日一题】468. 验证IP地址
题目描述给定一个字符串 queryIP。如果是有效的 IPv4 地址,返回 "IPv4" ;如果是有效的 IPv6 地址,返回 "IPv6" ;如果不是上述类型的 IP 地址,返回 "Neither" 。有效的IPv4地址 是 “x1.x2.x3.x4” 形式的IP地址。 其中 0 <= xi <= 255 且 xi 不能包含 前导零。例如: “192.168.1.1” 、 “192.168.1.0” 为有效IPv4地址, “192.168.01.1” 为无效IPv4地址; “192.168原创 2022-05-29 10:53:44 · 581 阅读 · 0 评论 -
【力扣每日一题】1021. 删除最外层的括号
题目描述有效括号字符串为空 ""、"(" + A + ")" 或 A + B ,其中 A 和 B 都是有效的括号字符串,+ 代表字符串的连接。例如,"","()","(())()" 和 "(()(()))" 都是有效的括号字符串。如果有效字符串 s 非空,且不存在将其拆分为 s = A + B 的方法,我们称其为原语(primitive),其中 A 和 B 都是非空有效括号字符串。给出一个非空有效字符串 s,考虑将其进行原语化分解,使得:s = P_1 + P_2 + ... + P_k,其中原创 2022-05-28 10:30:43 · 82 阅读 · 0 评论 -
【力扣每日一题】面试题 17.11. 单词距离
题目描述有个内含单词的超大文本文件,给任意两个不同的单词,找出在这个文件中这两个单词的最短距离(相隔单词数)。如果寻找过程在这个文件中会重复多次,而每次寻找的单词不同,你能对此优化吗?示例:输入:words = ["I","am","a","student","from","a","university","in","a","city"], word1 = "a", word2 = "student"输出:1提示:words.length <= 100000先用暴力来解一下:直接原创 2022-05-27 09:19:53 · 223 阅读 · 0 评论 -
【力扣每日一题】699. 掉落的方块
题目描述在无限长的数轴(即 x 轴)上,我们根据给定的顺序放置对应的正方形方块。第 i 个掉落的方块(positions[i] = (left, side_length))是正方形,其中 left 表示该方块最左边的点位置(positions[i][0]),side_length 表示该方块的边长(positions[i][1])。每个方块的底部边缘平行于数轴(即 x 轴),并且从一个比目前所有的落地方块更高的高度掉落而下。在上一个方块结束掉落,并保持静止后,才开始掉落新方块。方块的底边具有非常大的原创 2022-05-26 09:59:05 · 175 阅读 · 0 评论 -
【力扣每日一题】965. 单值二叉树
题目描述如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。只有给定的树是单值二叉树时,才返回 true;否则返回 false。示例 1:输入:[1,1,1,1,1,null,1]输出:true示例 2:输入:[2,2,2,5,2]输出:false提示:给定树的节点数范围是 [1, 100]。每个节点的值都是整数,范围为 [0, 99] 。这无非是遍历每个节点,看看是不是与根节点的值相同,出现不同则返回false,全都相同或者为null则返回true。/**原创 2022-05-24 09:59:43 · 69 阅读 · 0 评论 -
【力扣每日一题】464. 我能赢吗
题目描述在 “100 game” 这个游戏中,两名玩家轮流选择从 1 到 10 的任意整数,累计整数和,先使得累计整数和 达到或超过 100 的玩家,即为胜者。如果我们将游戏规则改为 “玩家 不能 重复使用整数” 呢?例如,两个玩家可以轮流从公共整数池中抽取从 1 到 15 的整数(不放回),直到累计整数和 >= 100。给定两个整数 maxChoosableInteger (整数池中可选择的最大数)和 desiredTotal(累计和),若先出手的玩家是否能稳赢则返回 true ,否则返回原创 2022-05-22 09:41:50 · 544 阅读 · 0 评论 -
【力扣每日一题】961. 在长度 2N 的数组中找出重复 N 次的元素
题目描述给你一个整数数组 nums ,该数组具有以下属性:nums.length == 2 * n.nums 包含 n + 1 个 不同的 元素nums 中恰有一个元素重复 n 次找出并返回重复了 n 次的那个元素。示例 1:输入:nums = [1,2,3,3]输出:3示例 2:输入:nums = [2,1,2,5,3,2]输出:2示例 3:输入:nums = [5,1,5,2,5,3,5,4]输出:5提示:2 <= n <= 5000nums.l原创 2022-05-21 10:57:47 · 178 阅读 · 0 评论 -
【力扣每日一题】436. 寻找右区间
题目描述给你一个区间数组 intervals ,其中 intervals[i] = [starti, endi] ,且每个 starti 都 不同 。区间 i 的 右侧区间 可以记作区间 j ,并满足 startj`` >= endi ,且 startj 最小化 。返回一个由每个区间 i 的 右侧区间 的最小起始位置组成的数组。如果某个区间 i 不存在对应的 右侧区间 ,则下标 i 处的值设为 -1 。示例 1:输入:intervals = [[1,2]]输出:[-1]解释:集合中只有一原创 2022-05-20 10:29:07 · 146 阅读 · 0 评论 -
【力扣每日一题】462. 最少移动次数使数组元素相等 II
题目描述给你一个长度为 n 的整数数组 nums ,返回使所有数组元素相等需要的最少移动数。在一步操作中,你可以使数组中的一个元素加 1 或者减 1 。示例 1:输入:nums = [1,2,3]输出:2解释:只需要两步操作(每步操作指南使一个元素加 1 或减 1):[1,2,3] => [2,2,3] => [2,2,2]示例 2:输入:nums = [1,10,2,9]输出:16提示:n == nums.length1 <= nums.leng原创 2022-05-19 08:10:58 · 120 阅读 · 0 评论 -
【力扣每日一题】668. 乘法表中第k小的数
题目描述几乎每一个人都用 乘法表。但是你能在乘法表中快速找到第k小的数字吗?给定高度m 、宽度n 的一张 m * n的乘法表,以及正整数k,你需要返回表中第k 小的数字。例 1:输入: m = 3, n = 3, k = 5输出: 3解释: 乘法表:1 2 32 4 63 6 9第5小的数字是 3 (1, 2, 2, 3, 3).例 2:输入: m = 2, n = 3, k = 6输出: 6解释: 乘法表:1 2 32 4 6第6小的数字是 6 (1, 2, 2原创 2022-05-18 11:23:15 · 108 阅读 · 0 评论 -
【力扣每日一题】953. 验证外星语词典
题目描述某种外星语也使用英文小写字母,但可能顺序 order 不同。字母表的顺序(order)是一些小写字母的排列。给定一组用外星语书写的单词 words,以及其字母表的顺序 order,只有当给定的单词在这种外星语中按字典序排列时,返回 true;否则,返回 false。示例 1:输入:words = ["hello","leetcode"], order = "hlabcdefgijkmnopqrstuvwxyz"输出:true解释:在该语言的字母表中,'h' 位于 'l' 之前,所以单词序原创 2022-05-17 10:10:58 · 96 阅读 · 0 评论 -
【力扣每日一题】面试题 04.06. 后继者
题目描述设计一个算法,找出二叉搜索树中指定节点的“下一个”节点(也即中序后继)。如果指定节点没有对应的“下一个”节点,则返回null。示例 1:输入: root = [2,1,3], p = 1 2 / \1 3输出: 2示例 2:输入: root = [5,3,6,2,4,null,null,1], p = 6 5 / \ 3 6 / \ 2 4 / 1输出: null我用了最原始的中序完全遍历,然后得到的原创 2022-05-16 14:09:08 · 98 阅读 · 0 评论 -
【力扣每日一题】812. 最大三角形面积
题目描述给定包含多个点的集合,从其中取三个点组成三角形,返回能组成的最大三角形的面积。示例:输入: points = [[0,0],[0,1],[1,0],[0,2],[2,0]]输出: 2解释: 这五个点如下图所示。组成的橙色三角形是最大的,面积为2。注意:3 <= points.length <= 50.不存在重复的点。-50 <= points[i][j] <= 50.结果误差值在 10^-6 以内都认为是正确答案。只能说忘记了三角形用三个点求原创 2022-05-15 10:24:18 · 178 阅读 · 0 评论 -
【力扣每日一题】691. 贴纸拼词
题目描述我们有 n 种不同的贴纸。每个贴纸上都有一个小写的英文单词。您想要拼写出给定的字符串 target ,方法是从收集的贴纸中切割单个字母并重新排列它们。如果你愿意,你可以多次使用每个贴纸,每个贴纸的数量是无限的。返回你需要拼出 target 的最小贴纸数量。如果任务不可能,则返回 -1 。**注意:**在所有的测试用例中,所有的单词都是从 1000 个最常见的美国英语单词中随机选择的,并且 target 被选择为两个随机单词的连接。示例 1:输入: stickers = ["with","原创 2022-05-14 10:05:37 · 193 阅读 · 0 评论 -
【力扣每日一题】面试题 01.05. 一次编辑
题目描述字符串有三种编辑操作:插入一个字符、删除一个字符或者替换一个字符。 给定两个字符串,编写一个函数判定它们是否只需要一次(或者零次)编辑。示例 1:输入: first = "pale"second = "ple"输出: True示例 2:输入: first = "pales"second = "pal"输出: False这道题一开始我是怎么也想不出啥办法,甚至还想用哈希表去搞,最后放弃了。这样大大增加了重复的步骤,根本不符合这道题的思路,于是去借鉴大佬的解法。不得不说宫水原创 2022-05-13 11:29:55 · 135 阅读 · 0 评论 -
【力扣每日一题】944. 删列造序
题目描述给你由 n 个小写字母字符串组成的数组 strs,其中每个字符串长度相等。这些字符串可以每个一行,排成一个网格。例如,strs = ["abc", "bce", "cae"] 可以排列为:abcbcecae你需要找出并删除 不是按字典序升序排列的 列。在上面的例子(下标从 0 开始)中,列 0('a', 'b', 'c')和列 2('c', 'e', 'e')都是按升序排列的,而列 1('b', 'c', 'a')不是,所以要删除列 1 。返回你需要删除的列数。示例 1:输入:s原创 2022-05-12 08:01:52 · 59 阅读 · 0 评论 -
【力扣每日一题】942. 增减字符串匹配
题目描述由范围 [0,n] 内所有整数组成的 n + 1 个整数的排列序列可以表示为长度为 n 的字符串 s ,其中:如果 perm[i] < perm[i + 1] ,那么 s[i] == 'I'如果 perm[i] > perm[i + 1] ,那么 s[i] == 'D'给定一个字符串 s ,重构排列 perm 并返回它。如果有多个有效排列perm,则返回其中 任何一个 。示例 1:输入:s = "IDID"输出:[0,4,1,3,2]示例 2:输入:s = "II原创 2022-05-09 12:43:32 · 177 阅读 · 0 评论 -
【力扣每日一题】442. 数组中重复的数据
题目描述给你一个长度为 n 的整数数组 nums ,其中 nums 的所有整数都在范围 [1, n] 内,且每个整数出现 一次 或 两次 。请你找出所有出现 两次 的整数,并以数组形式返回。你必须设计并实现一个时间复杂度为 O(n) 且仅使用常量额外空间的算法解决此问题。示例 1:输入:nums = [4,3,2,7,8,2,3,1]输出:[2,3]示例 2:输入:nums = [1,1,2]输出:[1]示例 3:输入:nums = [1]输出:[]提示:n == nums原创 2022-05-08 09:56:42 · 188 阅读 · 0 评论