leetcode
桉夏与猫
啥啥啥?这都是啥?
展开
-
1641. <动态规划> 统计字典序元音字符串的数目
给你一个整数 n,请返回长度为 n 、仅由元音 (a, e, i, o, u) 组成且按 字典序排列 的字符串数量。字符串 s 按 字典序排列 需要满足:对于所有有效的 i,s[i] 在字母表中的位置总是与 s[i+1] 相同或在 s[i+1] 之前。示例 1:输入:n = 1输出:5解释:仅由元音组成的 5 个字典序字符串为 ["a","e","i","o","u"]示例 2:输入:n = 2输出:15解释:仅由元音组成的 15 个字典序字符串为["aa","ae",".原创 2021-05-09 21:22:25 · 131 阅读 · 0 评论 -
1011. 在 D 天内送达包裹的能力
传送带上的包裹必须在 D 天内从一个港口运送到另一个港口。传送带上的第 i 个包裹的重量为 weights[i]。每一天,我们都会按给出重量的顺序往传送带上装载包裹。我们装载的重量不会超过船的最大运载重量。返回能在 D 天内将传送带上的所有包裹送达的船的最低运载能力。示例 1:输入:weights = [1,2,3,4,5,6,7,8,9,10], D = 5输出:15解释:船舶最低载重 15 就能够在 5 天内送达所有包裹,如下所示:第 1 天:1, 2, 3, 4, 5..原创 2021-04-26 09:50:05 · 116 阅读 · 0 评论 -
1154. 一年中的第几天
给你一个按 YYYY-MM-DD 格式表示日期的字符串date,请你计算并返回该日期是当年的第几天。通常情况下,我们认为 1 月 1 日是每年的第 1 天,1 月 2 日是每年的第 2 天,依此类推。每个月的天数与现行公元纪年法(格里高利历)一致。示例 1:输入:date = "2019-01-09"输出:9示例 2:输入:date = "2019-02-10"输出:41示例 3:输入:date = "2003-03-01"输出:60示例 4:输入:dat...原创 2021-04-25 18:48:47 · 238 阅读 · 0 评论 -
520. 检测大写字母
给定一个单词,你需要判断单词的大写使用是否正确。我们定义,在以下情况时,单词的大写用法是正确的: 全部字母都是大写,比如"USA"。 单词中所有字母都不是大写,比如"leetcode"。 如果单词不只含有一个字母,只有首字母大写, 比如 "Google"。否则,我们定义这个单词没有正确使用大写字母。示例 1:输入: "USA"输出: True示例 2:输入: "FlaG"输出: False解题代码与思路:按部就班法:就所...原创 2021-04-25 18:30:12 · 179 阅读 · 0 评论 -
704. 二分查找
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例 2:输入: nums = [-1,0,3,5,9,12], target = 2输出: -1解释: 2 不存在 nums 中因此返回 -1解题代码:很...原创 2021-04-25 18:17:12 · 88 阅读 · 0 评论 -
1560. 圆形赛道上经过次数最多的扇区
题目描述:给你一个整数 n 和一个整数数组 rounds 。有一条圆形赛道由 n 个扇区组成,扇区编号从 1 到 n 。现将在这条赛道上举办一场马拉松比赛,该马拉松全程由 m 个阶段组成。其中,第 i 个阶段将会从扇区 rounds[i - 1] 开始,到扇区 rounds[i] 结束。举例来说,第 1 阶段从rounds[0]开始,到rounds[1]结束。请你以数组形式返回经过次数最多的那几个扇区,按扇区编号 升序 排列。注意,赛道按扇区编号升序逆时针形成一个圆(请参见第一个示例...原创 2021-04-25 18:12:54 · 146 阅读 · 0 评论 -
leetcode每日刷题:1089. 复写零
给你一个长度固定的整数数组 arr,请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移。注意:请不要在超过该数组长度的位置写入元素。要求:请对输入的数组 就地 进行上述修改,不要从函数返回任何东西。输入:[1,0,2,3,0,4,5,0]输出:null解释:调用函数后,输入的数组将被修改为:[1,0,0,2,3,0,0,4]输入:[1,2,3]输出:null解释:调用函数后,输入的数组将被修改为:[1,2,3]代码:暴力解法:按照题目要求,使用一个..原创 2021-04-25 17:56:52 · 274 阅读 · 0 评论 -
leetcode每日刷题:1184. 公交站间的距离
环形公交路线上有 n 个站,按次序从 0 到 n - 1 进行编号。我们已知每一对相邻公交站之间的距离,distance[i] 表示编号为 i 的车站和编号为 (i + 1) % n 的车站之间的距离。环线上的公交车都可以按顺时针和逆时针的方向行驶。返回乘客从出发点 start 到目的地 destination 之间的最短距离。输入:distance = [1,2,3,4], start = 0, destination = 1输出:1解释:公交站 0 和 1 之间的距离是 1 ..原创 2021-04-25 17:39:35 · 449 阅读 · 0 评论 -
leetcode每日刷题:896. 单调数列
题目描述:如果数组是单调递增或单调递减的,那么它是单调的。如果对于所有 i <= j,A[i] <= A[j],那么数组 A 是单调递增的。 如果对于所有 i <= j,A[i]> = A[j],那么数组 A 是单调递减的。当给定的数组 A 是单调数组时返回 true,否则返回 false。示例 1:输入:[1,2,2,3]输出:true示例 2:输入:[6,5,4,4]输出:true示例 3:输入:[1,3,2]输出:false.原创 2021-04-22 16:06:24 · 142 阅读 · 0 评论 -
leetcode——我从别人的代码学到的技巧(一)
1、判断字符串是否全部是由字母组成不需要自己去定义,在python中有直接的函数!my_str.isalpha()全部由字母组成,返回True否则返回False2、对某个可迭代对象(字典、列表、元组等)进行多步排序多步排序,举个例子,先按照内容来排序,如果内容一样再按照ID排序听起来很简单,但是实现起来也确实有技巧:my_test = ["b:7","a:7","c:4","d:3"]def f(log): id_, rest = log.split(":",原创 2021-04-22 15:56:37 · 200 阅读 · 0 评论 -
leetcode每日刷题:937. 重新排列日志文件
题目描述:给你一个日志数组 logs。每条日志都是以空格分隔的字串,其第一个字为字母与数字混合的 标识符 。有两种不同类型的日志: 字母日志:除标识符之外,所有字均由小写字母组成 数字日志:除标识符之外,所有字均由数字组成请按下述规则将日志重新排序: 所有 字母日志 都排在 数字日志 之前。 字母日志 在内容不同时,忽略标识符后,按内容字母顺序排序;在内容相同时,按标识符排序。 数字日志 应该保留原来的相对顺序。返回日志的最终顺序。...原创 2021-04-22 15:36:39 · 224 阅读 · 0 评论 -
leetcode每日刷题:28. 实现 strStr()
题目:实现 strStr() 函数。给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。说明:当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。对于本题而言,当 needle 是空字符串时我们应当返回 0 。这与 C 语言的 strstr() 以及 Java 的 indexOf() 定义相符。示例 1:输入:...原创 2021-04-20 16:24:00 · 368 阅读 · 0 评论 -
leetcode每日刷题:264. 丑数 II
给你一个整数 n ,请你找出并返回第 n 个 丑数 。丑数 就是只包含质因数2、3 和/或5的正整数。示例 1:输入:n = 10输出:12解释:[1, 2, 3, 4, 5, 6, 8, 9, 10, 12] 是由前 10 个丑数组成的序列。示例 2:输入:n = 1输出:1解释:1 通常被视为丑数。提示:1 <= n <= 1690题解:利用动态规划,定义数组 dp,其中 dp[i]表示第 i 个丑数,第 n 个丑数即为dp[n]。...原创 2021-04-11 18:42:34 · 289 阅读 · 0 评论 -
leetcode每日刷题:数组的度
题目描述:给定一个非空且只包含非负数的整数数组 nums,数组的度的定义是指数组里任一元素出现频数的最大值。你的任务是在 nums 中找到与 nums 拥有相同大小的度的最短连续子数组,返回其长度。示例 1:输入:[1, 2, 2, 3, 1]输出:2解释:输入数组的度是2,因为元素1和2的出现频数最大,均为2.连续子数组里面拥有相同度的有如下所示:[1, 2, 2, 3, 1], [1, 2, 2, 3], [2, 2, 3, 1], [1, 2, 2], [2, 2, 3], [原创 2021-04-07 20:44:39 · 1543 阅读 · 0 评论 -
leetcode每日刷题: 删除有序数组中的重复项
题目描述:给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例 1:输入:nums = [1,1,2]输出:2, nums = [1,2]解释:函数应该返回新的长度 2 ,并且原数组 nums 的前两个元素被修改为 1, 2 。不需要考虑数组中超出新长度后面的元素。示例 2:输入:nums = [0,0,1,1,1,2,原创 2021-04-06 08:40:53 · 321 阅读 · 0 评论 -
leetcode每日刷题:两数相加
问题描述给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807解决思路:classSolution:.原创 2020-09-15 16:40:48 · 113 阅读 · 0 评论 -
leetcode每日刷题: 二叉树的中序遍历
问题描述:给定一个二叉树,返回它的中序遍历。问题分析:中序遍历:左,中,右解决方法:颜色标记法优点:易于理解,稍微更改可适用于前序,中序,后序遍历其核心思想如下: 使用颜色标记节点的状态,新节点为白色,已访问的节点为灰色。 如果遇到的节点为白色,则将其标记为灰色,然后将其右子节点、自身、左子节点依次入栈。 如果遇到的节点为灰色,则将节点的值输出。class Solution: def inorderTraversal(self, root: Tree...原创 2020-09-14 09:49:31 · 190 阅读 · 0 评论