算法
TNT_D
一生二,二生三,三生万物,道法自然!!!
展开
-
根据一个二叉树的前序和中序,重构二叉树
要重构二叉树,首先要知道什么是二叉树,以及如何自己创建一个二叉树。了解了二叉树是如何创建出来的,才能重构二叉树。什么是二叉树树(Tree)是n(n>=0)个结点的有限集。n=0时称为空树。在任意一颗非空树中:1)有且仅有一个特定的称为根(Root)的结点;2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1、T2、......、Tn,其中每一个集合本身又是一棵树,并且称为根的子树。此外,树的定义还需要强调以下两点:1)n>0时根结点是唯一的,不可能存在多个原创 2020-09-08 11:31:24 · 277 阅读 · 0 评论 -
java 实现数组-快排序
快排在我理解就是双指针法。一个数组,左右两个指针,然后左指针向右移动,右指针向左移动。1 4 6 8 9 2 3 44 55 11左指针 ↑ ----------》 《---------↑右指针这里一定要注意,一定是右指针先移动,并且是两个指针每次都移动一次。算法原理:1、先确定一个基准点。我选择...原创 2020-08-24 16:36:53 · 246 阅读 · 0 评论 -
java 实现计算最长有效字符串
这个算法给人的第一感觉是挺简单的,而且类似的还有一个算法是--有效括号。查看括号是不是一一对应的。但是在写的时候还是遇到了挺多的坑的。记录一下。首先这类问题肯定先想到队列、栈等等。比较之下要使用栈(stack)大概就是这样的,直接上代码:public class bracket{ public static int bracketLength(String s){ if (s == null || s.length() == 0){ retur原创 2020-08-24 16:20:33 · 392 阅读 · 0 评论 -
java 实现数组的堆排序(大顶堆)
话不多说先上代码如果不想看原理,直接就抄代码就行了:/** * 堆排序 * 具体的流程是 数组---》大顶堆(或者是小顶堆)---》第一个个元素和最后一个元素调换位置---》重复元素下沉,以完成排序 */public class HeapSort { // 将一个数组 转化成 大顶堆 (根节点一定是比 左右子节点都大的) // 规则是 arr[i].left = arr[2*i+1] // arr[i].right = arr[2*i+2] .原创 2020-08-24 16:01:18 · 1041 阅读 · 0 评论