Fork me on GitHub
返回顶部
跳到底部

随笔分类 -  算法

摘要:对于一颗给定的二叉树,对任意两个节点,求它们的最低的公共祖先。 下面就是这样一道题,给定一棵树的前序和中序遍历(我们知道这颗树就是确定的了),对于任两个节点,求它们的最低公共主祖先。 PAT题目: "1151 LCA in a Binary Tree (30 分)" 方法2: 该方法对于这题会有一个 阅读全文
posted @ 2019-02-21 10:28 sqmax 阅读(515) 评论(0) 推荐(0)
摘要:快速排序 快速排序是一种基于分治的算法,其基本思想是将一个大数组按照一个【基准数】分为左右两份,左边的部分都不大于基准数,右边的部分都不小于基准数。然后,对这两份在分别应用快速排序,直到剩下一个元素为止。快速排序的平均时间复杂度为nlog(n)。 下面是选取数组最左边的元素为基准元素的快排算法: C 阅读全文
posted @ 2018-12-30 14:07 sqmax 阅读(253) 评论(0) 推荐(0)
摘要:完全二叉树适合用数组存储,而且从第二个位置及a[1]开始存储,这样对于一个节点 ,它的左子树和右子树就分别为 和`i 2+1`。 对于一个完全二叉树存储的树结构,可以用如下方法来它是不是一个堆。 方法1: 调用时直接直接将树根1传入就行了。 上面是考试时想到的方法,有点麻烦,下面是别人更简洁的方法。 阅读全文
posted @ 2018-12-10 16:40 sqmax 阅读(1278) 评论(0) 推荐(0)
摘要:DFS遍历图时的小技巧 我们通常使用DFS遍历图时,用vis[i]=true;来标记访问过的节点,但是如果要让我们统计图中所有边的长度的话,如果我们还这样做的话,对于非环形图来说,没问题,但是对于环形图来说,就可能访问不到最后一条边,如A B C A,A标记之后就不能统计到C A了。 这时我们的办法 阅读全文
posted @ 2018-12-07 18:11 sqmax 阅读(1224) 评论(0) 推荐(0)
摘要:最长连续子序列和 最长不下降子序列 最长回文串 若[i,j]之间的字符串回文,则dp[i][j]=1,否则dp[i][j]=0; 先令 [i,j] 的长度L为1,即i=j,然后逐渐增大,当L大于3,如果dp[i 1][j 1]=1&&s[i]==s[j],则dp[i][j]=1; 相关问题: "10 阅读全文
posted @ 2018-12-04 13:11 sqmax 阅读(211) 评论(0) 推荐(0)