
算法设计
Turbo_Come
耐得住寂寞,
才可守得住繁华!!!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
n! 结果尾数中零的数量
阶乘尾数0给定一个整数 n,返回 n! 结果尾数中零的数量。示例 1:输入: 3输出: 0解释: 3! = 6, 尾数中没有零。示例 2:输入: 5输出: 1解释: 5! = 120, 尾数中有 1 个零.思路:只有5的倍数的阶乘,尾数中有连续的零:num = a* 10^k = a* 5^k * 2^k统计一个数中,可以累除多少个5,尾数中便有多少个0...原创 2020-03-21 17:59:37 · 881 阅读 · 0 评论 -
判断一个数是否是 2、3、4的幂次方
2的几次幂判断一个数是否是 2的幂次方:思路:在二进制中 2^n形式如下2^1=2:10 1:012^2=4:100 3:0112^3=8: 1000 4:01112^4=16: 10000 5:01...原创 2020-03-21 17:53:30 · 615 阅读 · 0 评论 -
204统计小于N的质数个数
统计小于N的质数个数统计所有小于非负整数 n 的质数的数量。示例:输入: 10输出: 4解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 class Solution: def countPrimes(self, n: int) -> int: import math def Judge(num): ...原创 2020-03-21 17:38:09 · 325 阅读 · 0 评论 -
求和问题
LeetCode题目汇总:1.两数求和15.三数求和16.最接近的三数和18.四数求和两数求和:思路:哈希表思想,用python中的dict字典实现,时间复杂度:O(n) def twoSum(self, nums ,target) : dict_num = {} for ids, num in enumerate(nu...原创 2020-03-14 12:45:24 · 329 阅读 · 0 评论 -
129 跟到叶子节点数字之和
LeetCode:129 跟到叶子节点数字之和给定一个二叉树,它的每个结点都存放一个0-9的数字,每条从根到叶子节点的路径都代表一个数字。例如,从根到叶子节点路径 1->2->3 代表数字 123。计算从根到叶子节点生成的所有数字之和。说明:叶子节点是指没有子节点的节点。示例 1:输入: [1,2,3] 1 / \ 2 3...原创 2020-03-10 23:27:58 · 278 阅读 · 0 评论 -
124: 二叉树中最大路径求和
LeetCode 124:二叉树中最大路径求和给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。示例 1:输入: [1,2,3] 1 / \ 2 3输出: 6示例2:输入: [-10,9,20,null,null,15,7]...原创 2020-03-10 23:05:39 · 832 阅读 · 0 评论 -
116 填充每个节点的下一个右侧节点指针
LeetCode 116:填充每个节点的下一个右侧节点指针给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:struct Node { int val; Node *left; Node *right; Node *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 n...原创 2020-03-10 22:50:43 · 320 阅读 · 0 评论 -
114 二叉树展开为链表(python)
LeetCode 114 :二叉树展开为链表给定一个二叉树,原地将它展开为链表。例如,给定二叉树 1 / \ 2 5 / \ \3 4 6将其展开为:1 \ 2 \ 3 \ 4 \ 5 \ 6思路:非递归先序遍历,遍历过程...原创 2020-03-10 22:32:02 · 337 阅读 · 0 评论 -
113 路径求和II
LeetCode:113 路径求和II给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明:叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和sum = 22 5 / \ 4 8 / / \ 11 1...原创 2020-03-05 21:44:27 · 209 阅读 · 0 评论 -
判断二叉树中是否存在等于目标的路径
LeetCode: 112 路径求和给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明:叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ ...原创 2020-03-05 21:40:00 · 738 阅读 · 0 评论 -
111 求二叉树的最小深度
LeetCode:111 求二叉树的最小深度给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。示例:给定二叉树[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最小深度 2.思路:类似于求二叉树的...原创 2020-03-05 21:28:24 · 239 阅读 · 0 评论 -
110 判断平衡二叉树
LeetCode: 110判断平衡二叉树给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点的左右两个子树的高度差的绝对值不超过1。示例 1:给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回 true 。示例 2:给定二...原创 2020-03-05 21:22:12 · 201 阅读 · 0 评论 -
109 将有序链表转换成二叉树(python)
LeetCode:109将有序链表转换成二叉树给定一个单链表,其中的元素按 升序排序,将其转换为 高度平衡的二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 1。示例:给定的有序链表: [-10, -3, 0, 5, 9],一个可能的答案是:[0, -3, 9, -10, null, 5], 它可以表示下面这个高度平衡二叉搜...原创 2020-03-05 21:15:23 · 727 阅读 · 0 评论 -
将有序数组转换成二叉搜索树(python)
LeetCode: 108 将有序数组转换成二叉搜索树将一个按照 升序排列的有序数组转换为一棵高度 平衡二叉搜索树本题中,一个高度平衡二叉树是指一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 1。示例:给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \...原创 2020-03-05 21:08:41 · 328 阅读 · 0 评论 -
中序和后序遍历确定二叉树 + 前序和中序遍历确定二叉树
LeetCode:106中序和后序遍历确定二叉树105前序和中序遍历确定二叉树根据一棵树的中序遍历与后序遍历构造二叉树注意:你可以假设树中没有重复的元素。例如,给出中序遍历 inorder =[9,3,15,20,7]后序遍历 postorder = [9,15,7,20,3]返回如下的二叉树: 3 / \ 9 20 / \...原创 2020-03-05 21:01:32 · 993 阅读 · 0 评论 -
LeetCode 前150题中关于树的题目汇总
LeetCode 中,关于树的题目汇总:python实现,力求用最简洁的代码完成,有解题思路和代码,不定时更新补充目前范围:Leetcode前150题144.二叉树的先序遍历(python):递归+迭代https://blog.csdn.net/Turbo_Come/article/details/10458293397. 二叉树的中序遍历(python):递...原创 2020-03-04 22:30:25 · 443 阅读 · 0 评论 -
二叉树的层次遍历(队列+栈 python)
LeetCode: 107. 二叉树的层次遍历给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如:给定二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7思路: 层次遍历, 可用队列 或 栈(保存每层记录) 实现定义并创建二叉树:class T...原创 2020-03-04 22:13:13 · 397 阅读 · 0 评论 -
求二叉树的最大深度 BFS + DFS (python)
LeetCode :104. 二叉树的最大深度给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度3 思路: 二叉树的深度,...原创 2020-03-04 22:05:00 · 1179 阅读 · 0 评论 -
二叉树的锯齿形遍历(python)
LeetCode:二叉树的锯齿形遍历给定一个二叉树,返回其节点值的锯齿形层次遍历:(即 先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)例如:给定二叉树[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回锯齿形层次遍历如下:[ [3], [20,9], [1...原创 2020-03-04 21:58:43 · 510 阅读 · 0 评论 -
判断二叉树是否为对称二叉树
LeetCode:对称二叉树给定一个二叉树,检查它是否是镜像对称的。例如,二叉树[1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个[1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3说明:如...原创 2020-03-04 21:51:58 · 1311 阅读 · 0 评论 -
判断相同的二叉树
LeetCode:判断相同的二叉树给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例1:输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3]输出: true...原创 2020-03-04 21:43:42 · 279 阅读 · 0 评论 -
恢复二叉搜索树
LeetCode: 99. 恢复二叉搜索树二叉搜索树中的两个节点被错误地交换。请在不改变其结构的情况下,恢复这棵树。示例1:输入: [1,3,null,null,2] 1 /3 \ 2输出: [3,1,null,null,2] 3 /1 \ 2示例2:输入: [3,1,4,null,null,2] ...原创 2020-03-04 21:36:42 · 456 阅读 · 0 评论 -
验证二叉搜索树
LeetCode : 98. 验证二叉搜索树给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例1:输入: 2 / \ 1 3输出: true示例2:输入: 5 / \ 1...原创 2020-03-04 21:26:43 · 256 阅读 · 0 评论 -
给定一个整数构造不同的二叉树的个数
LeetCode :96. 不同的二叉树给定一个整数 n,求以1 ...n为节点组成的二叉搜索树有多少种?示例:输入: 3输出: 5解释:给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / / / \ \ 3 2 1...原创 2020-03-04 21:18:57 · 847 阅读 · 0 评论 -
给定一个整数构造不同的二叉搜索树
LeetCode:95. 不同的二叉搜索树 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...原创 2020-03-04 21:12:18 · 857 阅读 · 0 评论 -
二叉树的中序遍历(python):递归+迭代
94 LeetCode 二叉树的中序遍历"""给定一个二叉树,返回它的中序遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]进阶:递归算法很简单,你可以通过迭代算法完成吗?"""定义树结构:# Definition for a binary tree node.class TreeNode...原创 2020-03-01 23:22:27 · 4492 阅读 · 1 评论 -
二叉树的后序遍历(python):递归+迭代
"""给定一个二叉树,返回它的 后序遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [3,2,1]进阶:递归算法很简单,你可以通过迭代算法完成吗?""""""思路:递归:同理,顺序:左,右,根迭代:这就很上面的先序一样,我们可以改变入栈的顺序,刚才先序是从右到左,我们这次从左到右,最后得到的结果取...原创 2020-02-29 22:17:07 · 1105 阅读 · 0 评论 -
二叉树的先序遍历(python):递归+迭代
LeetCode:144. 二叉树的前序遍历"""给定一个二叉树,返回它的前序遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,2,3]进阶:递归算法很简单,你可以通过迭代算法完成吗?""""""思路:递归:就是依次输出根,左,右,递归下去迭代:使用栈来完成,我们先将根节点放入栈中,然后将其弹出...原创 2020-02-29 21:51:21 · 2455 阅读 · 0 评论 -
动态规划问题示例
正则表达式匹配(动态规划)"""给你一个字符串s和一个字符规律p,请你来实现一个支持 '.'和'*'的正则表达式匹配。'.' 匹配任意单个字符'*' 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖整个字符串s的,而不是部分字符串。说明s可能为空,且只包含从a-z的小写字母。p可能为空,且只包含从a-z的小写字母,以及字符.和*。...原创 2020-02-07 22:09:59 · 243 阅读 · 0 评论 -
动态规划问题示例
思路一:排列组合因为机器人走到底右下角,向下几步,向右几步都是固定的,比如,m=3, n=2,我们只要向下 1 步,向右 2 步就一定能到达终点。走的步数就是:向右:m-1, 向下:n-1所以总共的方案数: # 排列组合, m = 3, n = 2,说明:向右走2步,向下走1步 # math.factorial() 求阶层 import m...原创 2020-02-05 22:26:42 · 286 阅读 · 0 评论