
算法
计算机之灵魂。
红岸水滴
https://github.com/fenglei110
从孤独中寻找自由。
展开
-
知识体系
总结下自己的知识体系,发现任重道远。底层的技术依然要不断巩固。原创 2021-03-14 16:39:43 · 261 阅读 · 0 评论 -
LeeCode 104and110 python
104. 给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。# Definition for a binary tree n...原创 2018-12-06 21:58:00 · 472 阅读 · 0 评论 -
LeetCode 二叉树的高度和深度问题
二叉树的最大深度对于深度和高度问题,总结一下。首先定义一颗二叉树,初始化一些方法# Definition for a binary tree node.class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = None ...原创 2018-12-05 22:24:55 · 861 阅读 · 0 评论 -
LeetCode 102and107 Python
二叉树的层次遍历(广度优先搜索) 20 / \ 12 22 / / \ 3 21 25 / \ 33也就是说这样一棵树遍历的结果为:第一种结果:[ [33], [3, 21, 25], [12, 22], [20]]第二种结果:[...原创 2018-12-04 23:25:16 · 527 阅读 · 0 评论 -
LeetCode 105and106 二叉树 python
从前序与中序遍历序列构造二叉树首先要知道,先序遍历的顺序为[ 左、中、右 ],中序遍历的顺序为[ 中、左、右 ]。对于一棵树: 3 / \ 2 5 / \ 4 6中序遍历的结果是[3,2,5,4,6] ,记住每颗子树都是从根开始。左序遍历的结果是[2,3,4,5,6], 记住每棵树...原创 2018-12-04 21:52:03 · 1020 阅读 · 0 评论 -
我会编程,学习数据结构和算法做啥?
个人认为数据结构是编程最重要的基本功没有之一!刚开始学习编程时有一种误解,会编程就行,研究什么数据结合啊?《数据结构》是计算机专业的一门必修课, 学习时,觉得用处不大, 还不如学个java,python来的直接一点,根本就没好好学。等到工作了以后做业务系统开发,发现根本就用不到那些书中的讲的二叉树、图、排序算法, 更加觉得这门课是在浪费时间了。前段时间又重新复习数据结构,询问了些大牛,才发现这种想...原创 2018-04-23 18:30:58 · 1692 阅读 · 0 评论 -
最基础算法(二叉树、二分法、链表、斐波那契)
翻书问题或者走台阶问题:共有n个台阶,每次只能上1个台阶或者2个台阶,共有多少种方法爬完台阶。共有n页书,每次只能翻1页或者2页书,共有多少种方法翻完全书。# f(n)为翻完全书的方法# 递归写法def f(n): if n == 1: return 1 if n == 2: return 2 if n > 2: r...原创 2018-06-09 17:34:24 · 964 阅读 · 0 评论 -
基础算法(栈、队列、排序)
栈# 定义一个栈(FILO)class Stack(object): def __init__(self): self.stack = [] def pop(self): if self.is_empty(): return None else: return self.stack.p...原创 2018-06-11 18:09:05 · 816 阅读 · 0 评论 -
leetcode 查找重复的电子邮箱 python
编写一个 SQL 查询,查找 Person 表中所有重复的电子邮箱。示例:+----+---------+| Id | Email |+----+---------+| 1 | a@b.com || 2 | c@d.com || 3 | a@b.com |+----+---------+根据以上输入,你的查询应返回以下结果:+---------+| Email |+-...原创 2018-06-25 21:40:43 · 717 阅读 · 0 评论 -
leetcode 交换工资 python
给定一个 salary表,如下所示,有m=男性 和 f=女性的值 。交换所有的 f 和 m 值(例如,将所有 f 值更改为 m,反之亦然)。要求使用一个更新查询,并且没有中间临时表。例如:| id | name | sex | salary ||----|------|-----|--------|| 1 | A | m | 2500 || 2 | B | f |...原创 2018-06-25 22:47:45 · 440 阅读 · 0 评论 -
leetcode 有趣的电影 python
某城市开了一家新的电影院,吸引了很多人过来看电影。该电影院特别注意用户体验,专门有个 LED显示板做电影推荐,上面公布着影评和相关电影描述。作为该电影院的信息部主管,您需要编写一个 SQL查询,找出所有影片描述为非 boring (不无聊) 的并且 id 为奇数 的影片,结果请按等级 rating 排列。 例如,下表 cinema:+---------+-----------+----------...原创 2018-06-25 23:11:37 · 289 阅读 · 0 评论 -
leetcode 两数之和 II - 输入有序数组 python
给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, 7, 11, 15], target = 9...原创 2018-06-26 10:44:22 · 720 阅读 · 0 评论 -
细聊排序算法
常见的排序算法:选择排序,插入排序,冒泡排序,快速排序,堆排序,桶排序,基数排序。一个一个来聊吧。目录冒泡排序:选择排序:插入排序:归并排序:快速排序:堆排序:桶排序和基数排序:总结冒泡排序:'''冒泡排序它重复地遍历要排序的队列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数...原创 2018-12-02 20:48:32 · 741 阅读 · 0 评论 -
细聊模式匹配算法
在经典模式匹配问题中,我们经常给出了长度为n的文本字符串T和长度为m的模式字符串P,并希望明确是否P是T的一个子串。如果是,则希望找到P在T中开始位置的最低索引 j,比如 T[ j: j+m] 和P匹配,或者从T中找到所有P的开始位置索引。模式匹配问题在Python的str类中有许多内在的行为,例如 p in T,T.find(P),T.index(P),以及T.count(P),这些行为是更...原创 2018-12-02 13:59:57 · 1580 阅读 · 0 评论