![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
每日一题
文章平均质量分 67
每日一题算法,保持敏感思维
在札幌度假的小犀牛
这个作者很懒,什么都没留下…
展开
-
20240425 每日一题:2739. 总行驶距离
卡车有两个油箱。给你两个整数,mainTank 表示主油箱中的燃料(以升为单位),additionalTank 表示副油箱中的燃料(以升为单位)。该卡车每耗费 1 升燃料都可以行驶 10 km。每当主油箱使用了 5 升燃料时,如果副油箱至少有 1 升燃料,则会将 1 升燃料从副油箱转移到主油箱。返回卡车可以行驶的最大距离。注意:从副油箱向主油箱注入燃料不是连续行为。这一事件会在每消耗 5 升燃料时突然且立即发生。通过模拟主油箱和额外油箱的油量消耗过程来计算汽车能够行驶的最大距离。原创 2024-04-25 11:58:47 · 725 阅读 · 0 评论 -
20240424 每日一题:2385. 感染二叉树需要的总时间
使用BFS广度优先遍历解决感染二叉树所需要的总时间,空间及时间复杂度均为O(n)原创 2024-04-24 00:41:42 · 470 阅读 · 0 评论 -
20230423每日一题:1052. 爱生气的书店老板
20240403 leetcode的每日一题,巧用变量来解决爱生气的书店老板一题原创 2024-04-23 22:57:50 · 248 阅读 · 0 评论 -
每日一题-287. 寻找重复数(20200526)
今天是2020年5月26日,星期二。题目描述给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。示例 1:输入: [1,3,4,2,2]输出: 2示例 2:输入: [3,1,3,4,2]输出: 3说明:不能更改原数组(假设数组是只读的)。只能使用额外的 O(1) 的空间。时间复杂度小于 O(n2) 。数组中只有一个重复的数字,但它原创 2020-05-26 22:05:10 · 289 阅读 · 0 评论 -
数组-88. 合并两个有序数组(20200524)
使用归并排序合并两个有序数组原创 2020-05-24 21:32:20 · 250 阅读 · 0 评论 -
190场周赛-5418. 二叉树中的伪回文路径(20200524)
题目描述给你一棵二叉树,每个节点的值为 1 到 9 。我们称二叉树中的一条路径是 「伪回文」的,当它满足:路径经过的所有节点值的排列中,存在一个回文序列。请你返回从根到叶子节点的所有路径中 伪回文 路径的数目。题目分析看到本题目,首先想到的是要把从根节点到叶子节点的路径上的值存储下来,当到达叶子节点后,对当前路径上的值进行分析。由题意「每个节点的值为1到9」,所以一个大小为10的数组就可以统计路径上的节点值。如果当前路径上,「相同节点值出现频度次数为奇数」的次数 > 1,原创 2020-05-24 14:50:50 · 305 阅读 · 0 评论 -
数组-128. 最长连续序列(20200523)
题目描述给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为 O(n)。示例:输入: [100, 4, 200, 1, 3, 2]输出: 4解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。题目分析本题目要求找到最长连续序列的长度,但是数组尚未排序,那么第一个可以想到的解决办法就是先排序,然后找最长连续序列的长度。第二种解法可以利用set的特性,O(1)的时间复杂度就可以取到某个值。参考代码排序后找到最长连续序列public int longe原创 2020-05-23 20:29:27 · 238 阅读 · 0 评论 -
每日一题-5. 最长回文子串(20200521)
今天是2020年5月21日,星期四。题目描述给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"题目思路在本篇中,小编只介绍「中间扩展法」,其他方法大家可以在LeetCode题解区自取。「中间扩展法」:从每一个位置出发,向左向右扩散。第一步,先验证left、right位置的字符与当前字符是否相同,不断变换left原创 2020-05-21 18:35:34 · 226 阅读 · 0 评论 -
每日一题-25. K 个一组翻转链表(20200516)
今天是2020年5月16日,星期六。题目描述给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。示例:给你这个链表:1->2->3->4->5当 k = 2 时,应当返回: 2->1->4->3->5当 k = 3 时,应当返原创 2020-05-17 16:05:06 · 151 阅读 · 2 评论 -
每日一题-136. 只出现一次的数字(20200514)
今天是2020年5月14日,星期四。题目描述给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4题目分析本题目属于一道简单题目,因为只有一个元素出现一次,其余每个元素均出现两次,考虑异或运算。相同的元素异或结果为0,最后的结果即为出现一次的元素。参考代码class S原创 2020-05-14 23:28:21 · 155 阅读 · 0 评论 -
每日一题-155. 最小栈(20200512)
今天是2020年5月12日,星期二,也有好几天没写每日一题,继续捡起来了。题目描述设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。示例:输入:["MinStack","push","push","push","getMin","pop","top","getMin"][[],原创 2020-05-12 14:09:21 · 215 阅读 · 0 评论 -
每日一题-983. 最低票价
每日一题-983. 最低票价,典型的动态规划问题原创 2020-05-06 21:33:20 · 256 阅读 · 1 评论 -
每日一题-98. 验证二叉搜索树
每日一题-98. 验证二叉搜索树,使用中序遍历完成二叉搜索树的验证原创 2020-05-05 18:37:22 · 158 阅读 · 0 评论 -
每日一题-202. 快乐数
每日一题-202. 快乐数原创 2020-04-30 18:01:11 · 199 阅读 · 0 评论 -
二分查找-「力扣」1095. 山脉数组中查找目标值
二分查找-「力扣」1095. 山脉数组中查找目标值,三次二分查找寻找山脉数组中的目标值原创 2020-04-30 13:14:39 · 173 阅读 · 0 评论 -
每日一题—23. 合并K个排序链表
今天是2020年4月26日,星期日。今天正好是链表的问题,然后去学习了一下LeetCode上的weiwei大佬的「单链表」总结。同时欢迎大家加入每日一题打卡组织:每日一题打卡。题目描述合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[ 1->4->5, 1->3->4, 2->6]输出: 1->1-&g...原创 2020-04-28 18:28:31 · 145 阅读 · 0 评论 -
二分查找-33. 搜索旋转排序数组
二分查找-33. 搜索旋转排序数组原创 2020-04-27 21:48:16 · 132 阅读 · 0 评论 -
每日一题-199. 二叉树的右视图
每日一题-199. 二叉树的右视图,使用BFS和DFS方式解决遍历问题。原创 2020-04-22 22:39:30 · 231 阅读 · 0 评论 -
每日一题-1248. 统计「优美子数组」
每日一题-1248. 统计「优美子数组」,滑动窗口+前缀和解题方法原创 2020-04-21 22:50:30 · 173 阅读 · 0 评论 -
每日一题-岛屿数量
今天是2020年4月20日,星期一。题目描述给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例 1:输入:11110110101100000000输出: 1示例 2:输入:11000110000...原创 2020-04-20 23:05:42 · 436 阅读 · 0 评论 -
每日一题-盛最多水的容器
今天是2020年4月18日,星期六。题目描述给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,...原创 2020-04-18 22:52:00 · 137 阅读 · 0 评论 -
每日一题-合并区间
今天是2020年4月16日,星期四。题目描述给出一个区间的集合,请合并所有重叠的区间。示例 1:输入: [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2:输入: [[1,4],[4,5]]输出: [[1,5]]解释: 区间 [1,4]...原创 2020-04-16 22:42:58 · 212 阅读 · 0 评论 -
每日一题- 01 矩阵
今天是2020年4月15日,星期三。题目描述给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离。两个相邻元素间的距离为 1 。示例 1:输入:0 0 00 1 00 0 0输出:0 0 00 1 00 0 0示例 2:输入:0 0 00 1 01 1 1输出:0 0 00 1 01 2 1注意:给定矩阵的元素个数不超过 100...原创 2020-04-15 23:19:41 · 470 阅读 · 0 评论 -
每日一题-两数相加 II
今天是2020年4月14日,星期二。题目描述给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。 进阶:如果输入链表不能修改该如何处理?换句话说,你不能对列表中的节点进行翻转。 示例:输入:(7 -> 2 -> 4 ...原创 2020-04-14 23:05:46 · 146 阅读 · 0 评论 -
每日一题-设计推特
今天是2020年4月13日,星期一。题目描述设计一个简化版的推特(Twitter),可以让用户实现发送推文,关注/取消关注其他用户,能够看见关注人(包括自己)的最近十条推文。你的设计需要支持以下的几个功能:postTweet(userId, tweetId): 创建一条新的推文getNewsFeed(userId): 检索最近的十条推文。每个推文都必须是由此用户关注的人或者是用户自己发出的...原创 2020-04-13 22:36:35 · 310 阅读 · 0 评论 -
每日一题-翻转字符串里的单词
今天是2020年4月10日,每日一题的第六天。题目描述给定一个字符串,逐个翻转字符串中的每个单词。示例 1:输入: "the sky is blue"输出: "blue is sky the"示例 2:输入: " hello world! "输出: "world! hello"解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符...原创 2020-04-10 22:43:21 · 232 阅读 · 0 评论 -
每日一题-括号生成
今天是2020年4月9日,每日一题的第五天。题目描述数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。示例:输入:n = 3输出:[ "((()))", "(()())", "(())()", "()(())", "()()()" ]题目分析参考liweiwe...原创 2020-04-10 11:10:36 · 295 阅读 · 0 评论 -
每日一题-机器人的运动范围
今天是2020年4月8日,每日一题的第四天。题目描述地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 3...原创 2020-04-08 21:40:24 · 504 阅读 · 2 评论 -
每日一题-旋转矩阵
今天是2020年4月7日,每日一题的第三天。题目描述给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。不占用额外内存空间能否做到?示例 1:给定 matrix = [ [1,2,3], [4,5,6], [7,8,9]],原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2], [9,...原创 2020-04-07 16:10:04 · 305 阅读 · 0 评论 -
每日一题-LFU缓存
今天是2020年4月5日,也是开始记录每日一题的第一天。题目描述请你为 最不经常使用(LFU)缓存算法设计并实现数据结构。它应该支持以下操作:get 和 put。get(key) - 如果键存在于缓存中,则获取键的值(总是正数),否则返回 -1。put(key, value) - 如果键不存在,请设置或插入值。当缓存达到其容量时,则应该在插入新项之前,使最不经常使用的项无效。在此问题中,当...原创 2020-04-06 21:40:02 · 382 阅读 · 0 评论