自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 资源 (3)
  • 收藏
  • 关注

原创 LCA问题

在一棵有根树中,两个结点u和v的最近公共祖先是指这样的一个结点 w,是u和v的祖先,并且在树T中具有最在深度。tarjan离线算法 ,伪代码如下:LCA(u) MAKE-SET(u) ancestor[FIND-SET(u)] = u for each child v of u in T LCA(v) UNIO...

2020-04-28 23:55:28 236

原创 LeetCode Lowest Common Ancestor of a Binary Tree(LCA问题)

问题:求二叉树中两个结点p,q的最近公共祖先思路:第一种方法是二叉树的递归,当搜索是当前结点为p或者为q时,直接返回对应结点。然后再左右子树的返回情况1、如果左右子树非空,则当前结点就是要找的最近公共祖先2、如果左子树返回的为空,右子树返回的不为空,则以右子树的结果返回3、如果左子树返回的不为空,右子树返回的为空,则以左子树的结果返回。第二种方式就是先求得p的父结点、父父结点...

2020-04-27 23:25:45 168

原创 LeetCode Kth Smallest Element in a BST(中序遍历)

问题:给出一个二叉查找树,求第k小的数思路:第一种方式是使用递归中序遍历得到结果后,直接取第k个数即可第二种方式是使用非递归中序遍历,在得到第k个数后直接停止具体代码参考:https://github.com/wuli2496/OJ/tree/master/LeetCode/Kth%20Smallest%20Element%20in%20a%20BST...

2020-04-25 23:55:54 182

原创 LeetCode Count Complete Tree Nodes(二分法)

问题:给出一个完全二叉树,求其结点个数思路:第一种方式时直接使用递归法,将其左子树个数加上右子树个数再加上根结点第二种方式二分法,因为完全二叉树除了最后一层外,其它都满足有2^i个结点,而最后一层的结点编号依次为0-2^i-1,根据二分法判断结点编号是否存在。具体代码参考https://github.com/wuli2496/OJ/tree/master/LeetCode/Coun...

2020-04-25 23:52:45 171

原创 LeetCode Maximal Square(最大子矩阵)

问题:给出一个由0,1组成的二维数组,求由1组成的最大子矩阵思路:第一种方式使用暴力法,在遍历二维数组时,如果当前元素是1,则以当前位置为起点,判断先增的一行,一列是否全是1,如果是,则将当前边长度加1,继续看新增的行与列是全为1,直到不满足为止。同时更新最大边长度。第二种方式是动态规划法,用dp(i,j)表示截止到(i,j)位置时的最大边。动态转移方程为dp(i,j)=min(dp(i...

2020-04-25 23:48:14 677

原创 LeetCode Contains Duplicate III(滑动窗口)

问题:给出一个数组,要求思路:第一种方法使用枚举法,对于i,则判断[0,i-k]之间的数与nums[i]的绝对值是否小于等于t。第二种方法基于set的滑动窗口。在遍历数组时,先看集合中比当前遍历的数大的最小值与当前值的绝对值是否小于等于t,如果是说明满足条件。再看比当前遍历数小的最大值与当前值的绝对值是否小于等于t,如果是说明满足。将当前值放入集合中,如果集合中的元素个数大于k,则删除前...

2020-04-25 23:41:16 181

原创 LeetCode Kth Largest Element in an Array(小根堆)

问题:求数组中第k在的数思路:使用小根堆,当堆中数量小于k时,将数据放入堆中,如果当前数大于堆顶的数,则弹出,将当前数放入堆中具体代码参考:https://github.com/wuli2496/OJ/tree/master/LeetCode/Kth%20Largest%20Element%20in%20an%20Array...

2020-04-25 23:24:41 181

原创 LeetCode House Robber II(动态规划)

问题:给出一个数组,表示房屋内藏有的现金。房屋围成一圈。相邻房间装有防盗系统,如果相邻的房间在同一晚上被偷,系统会自动报警。要求在不触到警报的情况下,能够偷到的最高金额。思路:因为房屋围成一圈,并且不能连续偷相邻的房间。因此只能是在0-n-1和1-n-1之间偷。用dp(i)表示到第i个房间时可以偷到的最高金额,当不偷第i个房间时,dp(i)=dp(i-1),当偷第i个房间时,dp(i) = d...

2020-04-25 23:20:56 169

原创 LeetCode Add and Search Word - Data structure design(字典树)

问题:设计一个支持addWord,search查询的数据结构,要求search支持.正则查询思路:使用Trie数据结构,在匹配.时,从子结点中选取可行的一个继续匹配下一个字符,主要思路是基于递归具体代码参考:https://github.com/wuli2496/OJ/tree/master/LeetCode/Add%20and%20Search%20Word%20-%20Data%2...

2020-04-25 11:21:31 142

原创 LeetCode Implement Trie (Prefix Tree)(字典树)

问题:实现具有insert,search,startsWith方法的字典树思路:就是要实现Trie数据结构具体代码参考:https://github.com/wuli2496/OJ/tree/master/LeetCode/Implement%20Trie%20(Prefix%20Tree)...

2020-04-25 11:16:55 170

原创 拓扑排序

拓扑排序解决的问题是有向图的节点排序。在有向无环图中,将图中的顶点以线性方式进行排序,使得对于任何的顶点u到v的有向边(u,v),都可以u在v的前面。1、Kahn算法首先将所有入度为0的点组成一个集合S,每次从S里面取出一个顶点u放入L,然后遍历u的所有边(u,v1),(u,v2),...,并删除,并判断该边的另一个顶点,如果在移除这一条边后入度为0,则将这个顶点放入集合S中。不断的重复上...

2020-04-24 12:09:50 393

原创 LeetCode Course Schedule II(拓扑排序)

问题:给出个课程个数,及前提条件对[v,u],即修课程v之前需要修课程u,如果可以输出修的课程顺序思路:对于有向图的拓扑排序一种方式是使用dfs,访问结点的状态分为三种,white,gray,black,其中white表示没有被访问,gray表示正在被访问,black表示已经访问过。在dfs中访问u结点时,首先将结点状态设置为gray,在遍历邻接结点时,如果邻接结点是gray,说明存在...

2020-04-22 23:51:59 159

原创 LeetCode Course Schedule(有向图中是否存在环)

问题:给出个课程个数,及前提条件对[u,v],即修课程v之间需要修课程u,问是否存在环思路:对于有向图的判断环一种方式是使用dfs,访问结点的状态分为三种,white,gray,black,其中white表示没有被访问,gray表示正在被访问,black表示已经访问过。在dfs中访问u结点时,首先将结点状态设置为gray,在遍历邻接结点时,如果邻接结点是gray,说明存在环,如果是wh...

2020-04-22 23:46:00 238

原创 LeetCode Bitwise AND of Numbers Range(位操作)

问题:给出一个区间[m,n],求这些数的位与结果思路:一种是直接根据定义,遍历[m,n],当m或者遍历过程等于Integer.MAX_VALUE,直接返回。第二种方式是当m不等于n时,从最低位开始,必然是0,1或者1,0交替,此时相与必然为0,此时只计算从左到右的公共部分。第三种方式与第二种类似,只是将右边的非0位置为0第四种方式是从左到右方式计算其公共前缀。通过m^n得到结果...

2020-04-22 22:27:35 201

原创 字符串互换后字典序最小

问题:给出一个字符串,以及可以互换的位置对,求出互换后字典序最小的。比如给出字符串dcab,以及可以互换的位置对[[0,3],[1, 2],[0, 2]],则互换后字典序最小的是abcd思路:第一种方法是广度优先搜索,初始状态为dcab,将初始状态放入队列以及已经访问状态集合中,根据可以互换的位置对扩展新的状态,同时需要记录已经访问的状态。如果新的状态在已访问状态集合中则跳过。代码如下:...

2020-04-19 19:48:34 3929

原创 LeetCode Number of Islands(flood fill)

问题:给出一个由0和1组成的二维网格图(m*n),1表示陆地,0表示水。要求统计有多少块陆地思路:常见的flood fill算法有三种,深度优先搜索、广度优先搜索以及广度扫描法。广度扫描法其实原理与广度优先搜索类似,只是在解空间比较大时,深度优先搜索占用的栈空间比较大,广度优先搜索在队列中占用的空间比较大。广度扫描法相当于是用时间来换取空间。此问题使用广度优先搜索时间复杂度为O(m*n),空间...

2020-04-18 21:21:46 198

原创 LeetCode Binary Tree Right Side View(搜索)

问题:给出一个二叉树,要求输出右视图思路:因为要求输出右视图。可以考虑使用深度优先搜索或者广度优先搜索。使用深度优先搜索时,以非递归形式,将左右子树入栈,同时使用哈希表记录深度与对应右视图的值。如果已经存在深度对应值则不用更新。因为先左子树入栈,然后是右子树入栈,所以每次出栈访问时总是先访问右子树。使用广度优先搜索时,将左右子树入队列,同时每次需要更新深度与对应右视图的值具体代码...

2020-04-18 21:00:57 150

原创 LeetCode Binary Search Tree Iterator( 二叉树迭代器)

问题:给出一棵树,使用迭代器来输出。思路:以中序遍历方式来输出。先中序遍历存入数组中,然后遍历。另一种方式是以模拟栈形式来中序遍历,先将左子树入栈,在遍历过程中,如果当前结点有右子树,需要将右子树按左子树方式入栈。具体代码参考:https://github.com/wuli2496/OJ/tree/master/LeetCode/Binary%20Search%20Tree%20Ite...

2020-04-18 20:48:34 172

原创 从远端拉取分支

从远端拉取分支使用命令git checkout -b 本地分支名 远端分支名比如git checkout -b 5.7 origin/5.7如果直接使用git checkout origin/5.7,结果如下:* (HEAD detached at origin/5.7)...

2020-04-11 00:00:44 534

原创 ubuntu18.04下编译mysql5.7源码

1、安装ncurses,bisonsudo apt install libncurses5-devsudo apt install bison

2020-04-06 23:14:32 1811 2

转载 [shell]shell中if语句的使用

bash中如何实现条件判断?条件测试类型:整数测试字符测试文件测试一、条件测试的表达式:[expression]括号两端必须要有空格[[expression]]括号两端必须要有空格testexpression组合测试条件:-a:and -o:or !: 非二、整数比较:-eq测试两个整数是否相等...

2020-04-06 21:37:54 6329

原创 boost编译

1、从github上下载boostgit clone --recursive https://github.com/boostorg/boost.git boost或者git clone https://github.com/boostorg/boost.gitcd boostgit submodule initgit submodule update2、创建编译工具...

2020-04-05 00:03:04 562

原创 LeetCode LRU Cache(最近最少使用缓存)

问题:设计一个最近最少使用缓存。支持get和put操作1、如果get(key)中,key在缓存中不存在,返回-12、put(key,value),如果key在缓存中不存在,则插入。当缓存到达容量时,需要删除最近最小使用项要求时间复杂度为O(1)思路:使用LinkedHashMap,实现类继承它。设置accessOrder为true,当get时,调整对应项位置,同时重写removeE...

2020-04-04 17:21:58 318

flash精彩实例chm

介绍flash基本操作以及mtv制作和as

2009-11-20

Linux C编程一站式学习

添加了GFDL许可证,正式网络发布。第三部分还很粗糙,错误也有不少,有待改进。第一部分和第二部分已经比较成熟,第二部分还差三章没写。

2009-09-11

Ubuntu Linux实用学习教程.pdf

Ubuntu 完全基于 Linux 操作系统, 可以免费得到社区及专业机构的支持。庞大的社区是它成长的沃土,请向这片动人的热忱敞开心扉。

2009-09-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除