加载中...
青墨书晚风

排序算法基本内容算法分类比较分类 非线性时间比较类排序:通过比较来决定元素间的相对次序, 由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。 线性时间非比较类排序:不通过比较来决定元素间的相对次序, 它可以突破基于比
我是文章在轮播图中的摘要
听一听看一看,魔法的世界是什么样的呢
本站基本介绍,页面选项功能
本站基本介绍,主要配置项
环境配置系统:Ubuntu系统编辑器:PycharmPython版本:python3.6(自带celery4.3.0)第三方包依赖: django3.0.8 本文简介这篇文章主要介绍了celery4+django3定时任务的实现, 用于定时
#Django–自定义 Command 命令Django 对于命令的添加有一套规范,你可以为每个app 指定命令。 通俗一点讲,比如在使用manage.py文件执行命令的时候,可以自定制自己的命令,来实现命令的扩充。 ##commands的
剑指 Offer II 047-二叉树剪枝
原文链接: https://leetcode-cn.com/problems/pOCWxh 中文题目给定一个二叉树 根节点 root ,树的每个节点的值要么是 0,要么是 1。请剪除该二叉树中所有节点的值为 0 的子树。 节点 node 的子树为 node 本身,以及所有 node 的后代。 示例 1: 输入: [1,null,0,0,1] 输出: [1,null,0,null,1] 解释: 只有红色节点满足条件“所有不包含 1 的子树”。 右图为返回的答案。 示例 2:…
2021-12-03
剑指 Offer II 109-开密码锁
原文链接: https://leetcode-cn.com/problems/zlDJc7 中文题目一个密码锁由 4 个环形拨轮组成,每个拨轮都有 10 个数字: '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' 。每个拨轮可以自由旋转:例如把 '9' 变为 '0','0' 变为 '9' 。每次旋转都只能旋转一个拨轮的一位数字。 锁的初始数字为 '0000' ,一个代表四个拨轮的数字的字符串。 列表 deadends 包含了一组死亡数字,一旦拨轮的…
2021-12-03
剑指 Offer II 110-所有路径
原文链接: https://leetcode-cn.com/problems/bP4bmD 中文题目给定一个有 n 个节点的有向无环图,用二维数组 graph 表示,请找到所有从 0 到 n-1 的路径并输出(不要求按顺序)。 graph 的第 i 个数组中的单元都表示有向图中 i 号节点所能到达的下一些结点(译者注:有向图是有方向的,即规定了 a→b 你就不能从 b→a ),若为空,就是没有下一个节点了。 示例 1: 输入:graph = [[1,2],[3],[3],[]…
2021-12-03
剑指 Offer II 048-序列化与反序列化二叉树
原文链接: https://leetcode-cn.com/problems/h54YBf 中文题目序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。 请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。 示例 1: 输入:root = [1,2,3,…
2021-12-03
剑指 Offer II 049-从根节点到叶节点的路径数字之和
原文链接: https://leetcode-cn.com/problems/3Etpl5 中文题目给定一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字。 每条从根节点到叶节点的路径都代表一个数字: 例如,从根节点到叶节点的路径 1 -> 2 -> 3 表示数字 123 。 计算从根节点到叶节点生成的 所有数字之和 。 叶节点 是指没有子节点的节点。 示例 1: 输入:root = [1,2,3] 输出:25 解释: 从根到叶子节点路径 1->2 代表数字 12 …
2021-12-03
剑指 Offer II 112-最长递增路径
原文链接: https://leetcode-cn.com/problems/fpTFWP 中文题目给定一个 m x n 整数矩阵 matrix ,找出其中 最长递增路径 的长度。 对于每个单元格,你可以往上,下,左,右四个方向移动。 不能 在 对角线 方向上移动或移动到 边界外(即不允许环绕)。 示例 1: 输入:matrix = [[9,9,4],[6,6,8],[2,1,1]] 输出:4 解释:最长递增路径为 [1, 2, 6, 9]。 示例 2: 输入:matrix = [[3,4,5]…
2021-12-03
剑指 Offer II 050-向下的路径节点之和
原文链接: https://leetcode-cn.com/problems/6eUYwP 中文题目给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。 路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。 示例 1: 输入:root = [10,5,-3,3,2,null,11,3,-2,null,1], targetSum = 8 输出:3 解释:和等于 8 的…
2021-12-03
剑指 Offer II 051-节点之和最大的路径
原文链接: https://leetcode-cn.com/problems/jC7MId 中文题目路径 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。 路径和 是路径中各节点值的总和。 给定一个二叉树的根节点 root ,返回其 最大路径和,即所有路径上节点值之和的最大值。 示例 1: 输入:root = [1,2,3] 输出:6 解释:最优路径是 2 -> 1 -> 3 ,…
2021-12-03
剑指 Offer II 052-展平二叉搜索树
原文链接: https://leetcode-cn.com/problems/NYBBNL 中文题目给你一棵二叉搜索树,请 按中序遍历 将其重新排列为一棵递增顺序搜索树,使树中最左边的节点成为树的根节点,并且每个节点没有左子节点,只有一个右子节点。 示例 1: 输入:root = [5,3,6,2,4,null,8,1,null,null,null,7,9] 输出:[1,null,2,null,3,null,4,null,5,null,6,null,7,null,8,null,9] 示例 2: …
2021-12-03
剑指 Offer II 113-课程顺序
原文链接: https://leetcode-cn.com/problems/QA2IGt 中文题目现在总共有 numCourses 门课需要选,记为 0 到 numCourses-1。 给定一个数组 prerequisites ,它的每一个元素 prerequisites[i] 表示两门课程之间的先修顺序。 例如 prerequisites[i] = [ai, bi] 表示想要学习课程 ai ,需要先完成课程 bi 。 请根据给出的总课程数 numCourses 和表示先修顺序的 prereq…
2021-12-03
剑指 Offer II 114-外星文字典
原文链接: https://leetcode-cn.com/problems/Jf1JuT 中文题目现有一种使用英语字母的外星文语言,这门语言的字母顺序与英语顺序不同。 给定一个字符串列表 words ,作为这门语言的词典,words 中的字符串已经 按这门新语言的字母顺序进行了排序 。 请你根据该词典还原出此语言中已知的字母顺序,并 按字母递增顺序 排列。若不存在合法字母顺序,返回 "" 。若存在多种可能的合法字母顺序,返回其中 任意一种 顺序即可。 字符串 s 字典顺序小于 字符串 t 有两…
2021-12-03
剑指 Offer II 053-二叉搜索树中的中序后继
原文链接: https://leetcode-cn.com/problems/P5rCT8 中文题目给定一棵二叉搜索树和其中的一个节点 p ,找到该节点在树中的中序后继。如果节点没有中序后继,请返回 null 。 节点 p 的后继是值比 p.val 大的节点中键值最小的节点,即按中序遍历的顺序节点 p 的下一个节点。 示例 1: 输入:root = [2,1,3], p = 1 输出:2 解释:这里 1 的中序后继是 2。请注意 p 和返回值都应是 TreeNode 类型。 示例 2: 输入:r…
2021-12-03
剑指 Offer II 115-重建序列
原文链接: https://leetcode-cn.com/problems/ur2n8P 中文题目请判断原始的序列 org 是否可以从序列集 seqs 中唯一地 重建 。 序列 org 是 1 到 n 整数的排列,其中 1 ≤ n ≤ 104。重建 是指在序列集 seqs 中构建最短的公共超序列,即 seqs 中的任意序列都是该最短序列的子序列。 示例 1: 输入: org = [1,2,3], seqs = [[1,2],[1,3]] 输出: false 解释:[1,2,3] 不…
2021-12-03
剑指 Offer II 054-所有大于等于节点的值之和
原文链接: https://leetcode-cn.com/problems/w6cpku 中文题目给定一个二叉搜索树,请将它的每个节点的值替换成树中大于或者等于该节点值的所有节点值之和。 提醒一下,二叉搜索树满足下列约束条件: 节点的左子树仅包含键 小于 节点键的节点。 节点的右子树仅包含键 大于 节点键的节点。 左右子树也必须是二叉搜索树。 示例 1: 输入:root = [4,1,6,0,2,5,7,null,null,null,3,null,null,null,8] 输出:[30,36,…
2021-12-03
剑指 Offer II 055-二叉搜索树迭代器
原文链接: https://leetcode-cn.com/problems/kTOapQ 中文题目实现一个二叉搜索树迭代器类BSTIterator ,表示一个按中序遍历二叉搜索树(BST)的迭代器: BSTIterator(TreeNode root) 初始化 BSTIterator 类的一个对象。BST 的根节点 root 会作为构造函数的一部分给出。指针应初始化为一个不存在于 BST 中的数字,且该数字小于 BST 中的任何元素。 boolean hasNext() 如果向指针右侧遍历存在…
2021-12-03
剑指 Offer II 117-相似的字符串
原文链接: https://leetcode-cn.com/problems/H6lPxb 中文题目如果交换字符串 X 中的两个不同位置的字母,使得它和字符串 Y 相等,那么称 X 和 Y 两个字符串相似。如果这两个字符串本身是相等的,那它们也是相似的。 例如,"tars" 和 "rats" 是相似的 (交换 0 与 2 的位置); "rats" 和 "arts" 也是相似的,但是 "star" 不与 "tars","rats",或 "arts" 相似。 总之,它们通过相似性形成了两个关联组:{…
2021-12-03
剑指 Offer II 118-多余的边
原文链接: https://leetcode-cn.com/problems/7LpjUW 中文题目树可以看成是一个连通且 无环 的 无向 图。 给定往一棵 n 个节点 (节点值 1~n) 的树中添加一条边后的图。添加的边的两个顶点包含在 1 到 n 中间,且这条附加的边不属于树中已存在的边。图的信息记录于长度为 n 的二维数组 edges ,edges[i] = [ai, bi] 表示图中在 ai 和 bi 之间存在一条边。 请找出一条可以删去的边,删除后可使得剩余部分是一个有着 n 个节点的…
2021-12-03
剑指 Offer II 056-二叉搜索树中两个节点之和
原文链接: https://leetcode-cn.com/problems/opLdQZ 中文题目给定一个二叉搜索树的 根节点 root 和一个整数 k , 请判断该二叉搜索树中是否存在两个节点它们的值之和等于 k 。假设二叉搜索树中节点的值均唯一。 示例 1: 输入: root = [8,6,10,5,7,9,11], k = 12 输出: true 解释: 节点 5 和节点 7 之和等于 12 示例 2: 输入: root = [8,6,10,5,7,9,11], k = 22 输出: f…
2021-12-03
剑指 Offer II 057-值和下标之差都在给定的范围内
原文链接: https://leetcode-cn.com/problems/7WqeDu 中文题目给你一个整数数组 nums 和两个整数 k 和 t 。请你判断是否存在 两个不同下标 i 和 j,使得 abs(nums[i] - nums[j]) <= t ,同时又满足 abs(i - j) <= k 。 如果存在则返回 true,不存在返回 false。 示例 1: 输入:nums = [1,2,3,1], k = 3, t = 0 输出:true 示例 2: 输入:nums = [1,0,…
2021-12-03
剑指 Offer II 119-最长连续序列
原文链接: https://leetcode-cn.com/problems/WhsWhI 中文题目给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 示例 1: 输入:nums = [100,4,200,1,3,2] 输出:4 解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。 示例 2: 输入:nums = [0,3,7,2,5,8,4,6,0,1] 输出:9 提示: 0 <= nums.length <= 104 -109…
2021-12-03
剑指 Offer II 059-数据流的第 K 大数值
原文链接: https://leetcode-cn.com/problems/jBjn9C 中文题目设计一个找到数据流中第 k 大元素的类(class)。注意是排序后的第 k 大元素,不是第 k 个不同的元素。 请实现 KthLargest 类: KthLargest(int k, int[] nums) 使用整数 k 和整数流 nums 初始化对象。 int add(int val) 将 val 插入数据流 nums 后,返回当前数据流中第 k 大的元素。 示例: 输入: ["KthLarge…
2021-12-03
剑指 Offer II 058-日程表
原文链接: https://leetcode-cn.com/problems/fi9suh 中文题目请实现一个 MyCalendar 类来存放你的日程安排。如果要添加的时间内没有其他安排,则可以存储这个新的日程安排。 MyCalendar 有一个 book(int start, int end)方法。它意味着在 start 到 end 时间内增加一个日程安排,注意,这里的时间是半开区间,即 [start, end), 实数 x 的范围为, start <= x < end。 当两个日程安排有一些…
2021-12-03
剑指 Offer II 060-出现频率最高的 k 个数字
原文链接: https://leetcode-cn.com/problems/g5c51o 中文题目给定一个整数数组 nums 和一个整数 k ,请返回其中出现频率前 k 高的元素。可以按 任意顺序 返回答案。 示例 1: 输入: nums = [1,1,1,2,2,3], k = 2 输出: [1,2] 示例 2: 输入: nums = [1], k = 1 输出: [1] 提示: 1 <= nums.length <= 105 k 的取值范围是 [1, 数组中不相同的元素的个数] 题目数据保…
2021-12-03
剑指 Offer II 061-和最小的 k 个数对
原文链接: https://leetcode-cn.com/problems/qn8gGX 中文题目给定两个以升序排列的整数数组 nums1 和 nums2 , 以及一个整数 k 。 定义一对值 (u,v),其中第一个元素来自 nums1,第二个元素来自 nums2 。 请找到和最小的 k 个数对 (u1,v1), (u2,v2) ... (uk,vk) 。 示例 1: 输入: nums1 = [1,7,11], nums2 = [2,4,6], k = 3 输出: [1,2],[1,4],[1…
2021-12-03
剑指 Offer II 063-替换单词
原文链接: https://leetcode-cn.com/problems/UhWRSj 中文题目在英语中,有一个叫做 词根(root) 的概念,它可以跟着其他一些词组成另一个较长的单词&mdash;&mdash;我们称这个词为 继承词(successor)。例如,词根an,跟随着单词 other(其他),可以形成新的单词 another(另一个)。 现在,给定一个由许多词根组成的词典和一个句子,需要将句子中的所有继承词用词根替换掉。如果继承词有许多可以形成它的词根,则用最短的词根替换它。 需…
2021-12-03
剑指 Offer II 064-神奇的字典
原文链接: https://leetcode-cn.com/problems/US1pGT 中文题目设计一个使用单词列表进行初始化的数据结构,单词列表中的单词 互不相同 。 如果给出一个单词,请判定能否只将这个单词中一个字母换成另一个字母,使得所形成的新单词存在于已构建的神奇字典中。 实现 MagicDictionary 类: MagicDictionary() 初始化对象 void buildDict(String[] dictionary) 使用字符串数组 dictionary 设定该数据结…
2021-12-03
剑指 Offer II 065-最短的单词编码
原文链接: https://leetcode-cn.com/problems/iSwD2y 中文题目单词数组 words 的 有效编码 由任意助记字符串 s 和下标数组 indices 组成,且满足: words.length == indices.length 助记字符串 s 以 '#' 字符结尾 对于每个下标 indices[i] ,s 的一个从 indices[i] 开始、到下一个 '#' 字符结束(但不包括 '#')的 子字符串 恰好与 words[i] 相等 给定一个单词数组 word…
2021-12-03
剑指 Offer II 066-单词之和
原文链接: https://leetcode-cn.com/problems/z1R5dt 中文题目实现一个 MapSum 类,支持两个方法,insert 和 sum: MapSum() 初始化 MapSum 对象 void insert(String key, int val) 插入 key-val 键值对,字符串表示键 key ,整数表示值 val 。如果键 key 已经存在,那么原来的键值对将被替代成新的键值对。 int sum(string prefix) 返回所有以该前缀 prefix…
2021-12-03
剑指 Offer II 067-最大的异或
原文链接: https://leetcode-cn.com/problems/ms70jA 中文题目给定一个整数数组 nums ,返回 nums[i] XOR nums[j] 的最大运算结果,其中 0 &le; i &le; j < n 。 示例 1: 输入:nums = [3,10,5,25,2,8] 输出:28 解释:最大运算结果是 5 XOR 25 = 28. 示例 2: 输入:nums = [0] 输出:0 示例 3: 输入:nums = [2,4] 输出:6 示例 4: 输入:nums…
2021-12-03
剑指 Offer II 068-查找插入位置
原文链接: https://leetcode-cn.com/problems/N6YdxV 中文题目给定一个排序的整数数组 nums 和一个整数目标值 target ,请在数组中找到 target ,并返回其下标。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums = [1,3,5,6], target = 5 输出: 2 示例 2: 输入: nums = [1,3,5,6], target = 2 输出: …
2021-12-03