
leetcode
文章平均质量分 64
datawhale-leafy
这个作者很懒,什么都没留下…
展开
-
二分法的边界条件 2517. 礼盒的最大甜蜜度
给你一个正整数数组 price ,其中 price[i] 表示第 i 类糖果的价格,另给你一个正整数 k。商店组合 k 类 不同 糖果打包成礼盒出售。礼盒的 甜蜜度 是礼盒中任意两种糖果 价格 绝对差的最小值。的情况,这种时候求均值的方法就不能向下取整。记录一下二分查找的时候几个边界条件。没有问题,但是mid满足时如果。返回礼盒的 最大 甜蜜度。还是小于等于,这个需要和。可行从而直接结束的情况。原创 2023-06-01 12:15:17 · 568 阅读 · 0 评论 -
类的方法与属性
故事的开始来自今天发现本月5号忘记了leetcode每日一题打卡。为了保证本人的第一次月打卡徽章,我打算补打这个卡。很快我发现这是一道并不困难的“困难”题,因此我决定写一个很Coooooooool的函数原创 2022-12-12 19:27:30 · 269 阅读 · 0 评论 -
写代码时记录的小技巧
如何在程序运行的过程中正确输出结果DEBUG原创 2022-12-12 19:26:03 · 3443 阅读 · 0 评论 -
leetcode - 23 494. 目标和
目标和 动态规划 LRU_cache原创 2022-09-23 14:11:06 · 423 阅读 · 0 评论 -
leetcode - 22 672. 灯泡开关 Ⅱ
leetcode 672原创 2022-09-15 20:15:39 · 891 阅读 · 0 评论 -
leetcode - 21 814. 二叉树剪枝
leetcode 中等难度 814. 二叉树剪枝原创 2022-07-22 07:10:59 · 223 阅读 · 0 评论 -
leetcode - 21 1260. 二维网格迁移
leetcode 1260 简单题 二维网格迁移原创 2022-07-20 21:07:17 · 110 阅读 · 0 评论 -
* leetcode - 23 731. 我的日程安排表 II
leetcode 七百三十一题原创 2022-07-19 21:35:08 · 121 阅读 · 0 评论 -
* leetcode 22 749. 隔离病毒
leetcode 749原创 2022-07-18 12:51:13 · 132 阅读 · 0 评论 -
leetcode - 21 565. 数组嵌套
leetcode 565 数组嵌套原创 2022-07-17 17:01:04 · 105 阅读 · 0 评论 -
leetcode - 20 558. 四叉树交集
leetcode 每日一题 四叉树交集原创 2022-07-15 12:22:20 · 159 阅读 · 0 评论 -
leetcode - 19 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 = “III” 输出.原创 2022-05-09 13:06:58 · 1056 阅读 · 0 评论 -
leetcode - 18 文件的最长绝对路径
leetcode 388 题原创 2022-04-20 12:33:02 · 162 阅读 · 0 评论 -
leetcode - c 第 200 场周赛
这次的题都还蛮简单的,大概讲一下做法吧统计好三元组给你一个整数数组 arr ,以及 a、b 、c 三个整数。请你统计其中好三元组的数量。如果三元组 (arr[i], arr[j], arr[k]) 满足下列全部条件,则认为它是一个 好三元组 。0 <= i < j < k < arr.length|arr[i] - arr[j]| <= a|arr[j] - arr[k]| <= b|arr[i] - arr[k]| <= c其中 |原创 2020-08-02 16:41:44 · 338 阅读 · 0 评论 -
leetcode - 17 最低加油次数
最低加油次数汽车从起点出发驶向目的地,该目的地位于出发位置东面 target 英里处。沿途有加油站,每个 station[i] 代表一个加油站,它位于出发位置东面 station[i][0] 英里处,并且有station[i][1] 升汽油。假设汽车油箱的容量是无限的,其中最初有 startFuel 升燃料。它每行驶 1 英里就会用掉 1 升汽油。当汽车到达加油站时,它可能停下来加油,将所有汽油从加油站转移到汽车中。为了到达目的地,汽车所必要的最低加油次数是多少?如果无法到达目的地,则返回..原创 2020-07-31 12:08:16 · 302 阅读 · 0 评论 -
leetcode - 16 任务调度器
任务调度器给定一个用字符数组表示的 CPU 需要执行的任务列表。其中包含使用大写的 A - Z 字母表示的26 种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。CPU 在任何一个单位时间内都可以执行一个任务,或者在待命状态。然而,两个相同种类的任务之间必须有长度为 n 的冷却时间,因此至少有连续 n 个单位时间内 CPU 在执行不同的任务,或者在待命状态。你需要计算完成所有任务所需要的最短时间。示例 :输入:tasks = [“A”,“A”,“A”,“B”,原创 2020-07-31 00:23:02 · 172 阅读 · 0 评论 -
leetcode - 15 两数相加
两数相加给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807这个题直接逆序存好的,比之前的 II 要简单多了(可惜我做的原创 2020-07-31 00:08:09 · 124 阅读 · 0 评论 -
leetcode - 13 Nim 游戏 - 14 飞机座位分配概率
你和你的朋友,两个人一起玩 Nim 游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。你们是聪明人,每一步都是最优解。 编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。示例:输入: 4输出: false解释: 如果堆中有 4 块石头,那么你永远不会赢得比赛;因为无论你拿走 1 块、2 块 还是 3 块石头,最后一块石头总是会被你的朋友拿走.class Solution: def canWinNim(self, n:原创 2020-07-30 23:50:59 · 249 阅读 · 0 评论 -
leetcode - b 199场周赛(缺第四题)
1- 5472. 重新排列字符串给你一个字符串 s 和一个 长度相同 的整数数组 indices 。请你重新排列字符串 s ,其中第 i 个字符需要移动到 indices[i] 指示的位置。返回重新排列后的字符串。示例 1:输入:s = “codeleet”, indices = [4,5,6,7,0,2,1,3] 输出:“leetcode”解释:如图所示,“codeleet” 重新排列后变为 “leetcode” 。示例 2:输入:s = “abc”, indices = [0,1,2]原创 2020-07-26 23:09:04 · 210 阅读 · 0 评论 -
leetcode - a 31周双周赛
1- 5456. 在区间范围内统计奇数数目给你两个非负整数 low 和 high 。请你返回 low 和 high 之间(包括二者)奇数的数目。示例 1:输入:low = 3, high = 7 输出:3 解释:3 到 7 之间奇数数字为 [3,5,7] 。示例 2:输入:low = 8, high = 10 输出:1 解释:8 到 10 之间奇数数字为 [9] 。这是一道简单题,只需要简单计算即可class Solution: def countOdds(self, low: i原创 2020-07-26 22:14:03 · 166 阅读 · 0 评论 -
leetcode - 12 相同的树
相同的树给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入:1 1/ \ / \2 3 2 3 [1,2,3], [1,2,3]输出: true示例 2:输入:1 1/ … \2 … 2 [1,2], [1,null,2]输出: false示例 3:输入:1 ..原创 2020-07-25 10:39:10 · 137 阅读 · 0 评论 -
leetcode - 11 恢复二叉搜索树 (附Morris 中序遍历方法)
恢复二叉搜索树二叉搜索树中的两个节点被错误地交换。请在不改变其结构的情况下,恢复这棵树。示例 1:输入: [1,3,null,null,2]1/3\2输出: [3,1,null,null,2]3/1\2示例 2:输入: [3,1,4,null,null,2].3./ \1 4… /…2输出: [2,1,4,null,null,3].2./ \1 4… /…3说来惭愧,我开始完全没意识到搜索二叉树的中序遍历是有序数组,还是基础知识没想过..原创 2020-07-25 10:35:00 · 152 阅读 · 0 评论 -
leetcode - 10 不同的二叉搜索树 II
不同的二叉搜索树 II给定一个整数 n,生成所有由 1 … n 为节点所组成的 二叉搜索树 。示例:输入:3输出: [ [1,null,3,2], [3,2,null,1], [3,1,null,null,2],[2,1,3], [1,null,2,null,3] ]解释: 以上的输出对应以下 5 种不同结构的二叉搜索树:1 … 3 … 3 … 2 …1. \ … / … / … / \ … \. 3..原创 2020-07-25 10:23:31 · 170 阅读 · 0 评论 -
leetcode - 9 两两交换链表中的节点
两两交换链表中的节点给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.这里是大概的思路分析def swapPairs(self, head: ListNode) -> ListNode: if not head or not head.next: return head dumm.原创 2020-07-23 17:02:43 · 127 阅读 · 0 评论 -
leetcode - 8 从中序与后序遍历序列构造二叉树
从中序与后序遍历序列构造二叉树根据一棵树的中序遍历与后序遍历构造二叉树。注意: 你可以假设树中没有重复的元素。例如,给出中序遍历 inorder = [9,3,15,20,7] 后序遍历 postorder = [9,15,7,20,3]返回如下的二叉树:.3./ \9 . 20… / \…15 7这个题同样也是比较简单的题,因为后序遍历和先序遍历都会在列表的开头或者结尾暴露出自己的根,所以通过这个根划分中序遍历列表即可。代码如下def buildTree(self, .原创 2020-07-23 16:31:18 · 122 阅读 · 0 评论 -
leetcode - 7 仅仅反转字母
仅仅反转字母给定一个字符串 S,返回 “反转后的” 字符串,其中不是字母的字符都保留在原地,而所有字母的位置发生反转。示例 1:输入:“ab-cd”输出:“dc-ba”示例 2:输入:“a-bC-dEf-ghIj”输出:“j-Ih-gfE-dCba”示例 3:输入:“Test1ng-Leet=code-Q!”输出:“Qedo1ct-eeLg=ntse-T!”这个应该算是简单的题,我使用了双指针的做法。当然这个做法我写的 python3 相对比较难看,并且用到了 python3 的特.原创 2020-07-23 16:25:06 · 111 阅读 · 0 评论 -
leetcode - 6 全排列
全排列 II给定一个可包含重复数字的序列,返回所有不重复的全排列。示例:输入: [1,1,2]输出:[[1,1,2],[1,2,1],[2,1,1]]全排列的问主要有两种思路:使用 used[i] 布尔数组记录元素是否使用过;使用交换的方式,在深度优先遍历(回溯)的过程中生成。给出一个速度较快的代码class Solution {public: vector<vector<int>> permuteUnique(vector<in..原创 2020-07-22 21:26:36 · 217 阅读 · 0 评论 -
leetcode - 5 一和零
一和零在计算机界中,我们总是追求用有限的资源获取最大的收益。现在,假设你分别支配着 m 个 0 和 n 个 1。另外,还有一个仅包含 0 和 1 字符串的数组。你的任务是使用给定的 m 个 0 和 n 个 1 ,找到能拼出存在于数组中的字符串的最大数量。每个 0 和 1 至多被使用一次。注意:给定 0 和 1 的数量都不会超过 100。给定字符串数组的长度不会超过 600。示例 1:输入: Array = {“10”, “0001”, “111001”, “1”, “0”}, m = .原创 2020-07-22 12:13:31 · 122 阅读 · 0 评论 -
leetcode - 4 翻转等价二叉树
翻转等价二叉树我们可以为二叉树 T 定义一个翻转操作,如下所示:选择任意节点,然后交换它的左子树和右子树。只要经过一定次数的翻转操作后,能使 X 等于 Y,我们就称二叉树 X 翻转等价于二叉树 Y。编写一个判断两个二叉树是否是翻转等价的函数。这些树由根节点 root1 和 root2 给出。示例:输入:root1 = [1,2,3,4,5,6,null,null,null,7,8], root2 = [1,3,2,null,6,4,5,null,null,null,null,8,7]输出:tru原创 2020-07-22 11:59:36 · 173 阅读 · 0 评论 -
leetcode - 3 实现 strstr()
看了好几遍 kmp,算是第一次做 kmp 的题实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = “hello”, needle = “ll”输出: 2示例 2:输入: haystack = “aaaaa”, needle = “bba”输出: -1说明:当 needle 是空字符串时,我们应原创 2020-07-22 11:51:44 · 109 阅读 · 0 评论 -
leetcode - 1 Z 字形变换
Z 字形变换将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。请你实现这个将字符串进行指定行数变换的函数:string convert(string s, int numRows);示例 1:输入: s原创 2020-07-22 00:10:25 · 113 阅读 · 0 评论 -
leetcode总结(未完待续)
也算是做了一个月 leetcode 了,却一直感觉空荡荡的缺少了点什么。因此决定在博客里面记录一下,总结一下题目,也算是不浪费做过的题目吧。为了代码简单可能会主要用 python3 写代码,但是有些还是会用 C++ 。主要是看卡时间的情况,或者 python3 用了太多依赖库,可能会选择用 C++ 写。大概简单的描述就这些吧,之后会不断补文章进来的。...原创 2020-07-22 00:00:24 · 214 阅读 · 0 评论 -
leetcode - 2 两数相加 II
两数相加 II给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。进阶:如果输入链表不能修改该如何处理?换句话说,你不能对列表中的节点进行翻转。示例:输入:(7 -> 2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 8 -> 0 -> 7同样是限时做题的原因,在试题上第一版的代码较为丑陋,原创 2020-07-22 00:46:54 · 232 阅读 · 0 评论