算法
泽阳Alex
热爱摄影,热爱生活
展开
-
专题5:不同种遍历结合恢复二叉树
不同种遍历结合恢复二叉树1.先序与中序结合恢复二叉树(LeetCode105)前序遍历 preorder =[3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7代码思想:前序遍历和中序遍历有以下特点:前序遍历: 根节点 | 左子树 | 右子...原创 2019-11-26 14:07:31 · 305 阅读 · 0 评论 -
专题4:char[ ]、String、StringBulider和StringBuffer
char[ ]、String、StringBulider和StringBuffer1.char[]和String(1)取里面的元素char数组取元素,直接利用数组下标即可; String字符串需要利用 .charAt()指定哪一个元素(2)相互转换:char[] str = {'a','b','c'};String s = str.toString();但这里转换后的s...原创 2019-11-26 11:01:43 · 281 阅读 · 0 评论 -
专题2:二叉树的先序、中序、后序、层次、宽度、深度遍历
二叉树的先序、中序、后序、层次、宽度、深度遍历1.二叉树的先序、中序、后序递归遍历(1)先序递归遍历(LeetCode144)public static void preOrderRecur(Node head) { if (head == null) { return; } System.out.print(head.value + " "); preOrde...原创 2019-11-26 11:01:18 · 214 阅读 · 0 评论 -
专题3:字符串 / 数组排列
字符串/数组排列1.把数组排成最小的数(剑指Offer 45)输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。代码思想:排列的思想都是取一个比较一次,最好用的工具就是系统自带的比较器,只需重写compare方法即可。代码实现:public Str...原创 2019-11-26 11:01:33 · 222 阅读 · 0 评论 -
专题1:二叉搜索树的验证、插入、删除和搜索
二叉搜索树的验证、插入、删除和搜索1.二叉搜索树的验证(LeetCode98)二叉搜索树是指在二叉树的中序遍历中节点值升序。依照此特点,我们可以采用非递归中序遍历,在输出节点值的地方替换为当卡节点值是否比上一个节点值大,如果满足,则是二叉搜索树。代码实现: public boolean isValidBST(TreeNode root) { if (root ==...原创 2019-11-26 11:00:59 · 135 阅读 · 0 评论 -
现有一个英语语句,比如“London bridge is falling down”,把它完全倒装起来,“down falling is bridge London”。要求:不使用额外的存储空间。
题目:现有一个英语语句,比如“London bridge is falling down”,把它完全倒装起来,“down falling is bridge London”。要求:不使用额外的存储空间。解法1:使用右移思想,字母和空格分开处理,每次将字符串的最后一位设为临时变量,将数组向右移动一位后,将临时变量放在对应位置。循环结束的条件是最初字符串的第一个单词长度+指针移动变量的位置=整...原创 2019-08-24 11:24:46 · 1186 阅读 · 0 评论 -
1.1 &1.2 基础编程模型&数据抽象
1.1 基础编程模型此部分与java基础重复,只说明几点容易出现和出错的点。1.字符串类型转换如,String值和数字之间互相转换的API:public class Integer{ static int parseInt(String s) //将字符串s转换为整数 static String toString(int i) //将整数i转换为字符串...原创 2019-05-13 16:42:33 · 224 阅读 · 0 评论 -
1.4 算法分析
算法分析1.例子(3-sum)在3-sum之前,先来看一种表示计时器的抽象数据类型:代码如下:public class Stopwatch { private final long start; public Stopwatch() { start = System.currentTimeMillis(); } pub...原创 2019-05-26 10:45:06 · 167 阅读 · 0 评论 -
1.3 背包、队列与栈
背包、队列与栈1.API每个API都含有一个无参数的构造函数、一个向集合中添加单个元素的方法、一个测试集合是否为空的方法和一个返回集合大小的方法。Stack和Queue都含有一个能够删除集合中特定元素的方法。三个API如下:2.泛型泛型可以存储任意类型的数据,在上面的API中,<Item>记号将Item定义为一个类型参数,表示一个占位符,指某种具体数据类型。如用栈处...原创 2019-05-14 16:34:17 · 253 阅读 · 0 评论