剑指offer
Bruin_W
只想把自己遇到的问题发出来记录,并希望能帮到大家-.-
展开
-
算法——剑指offer解析(图解)——4.重建二叉树
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。解题思路因为是树的结构,一般都是用递归来实现。用数学归纳法的思想就是,假设最后一步,就是root的左右子树都已经重建好了,那么我只要考虑将root的左右子树安上去即可。根据前序遍历的性质,第一个元素必然就是root,那么下面的工作就是如何确定root的左右子原创 2020-05-27 01:00:15 · 241 阅读 · 0 评论 -
算法——剑指offer解析(图解)——3.从尾到头打印链表
利用栈的特性先进后出,实现从尾到头打印链表,代码如下import java.util.ArrayList;import java.util.Stack;public class Solution { public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { ...原创 2020-04-23 15:58:56 · 201 阅读 · 0 评论 -
算法——剑指offer解析(图解)——2.替换空格
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。原创 2020-04-23 15:06:31 · 225 阅读 · 0 评论 -
算法——剑指offer解析(图解)——1.二维数组中的查找
题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。三种解法:第一种暴力匹配,时间复杂度O(n^2)第二种二分法,时间复杂度O(nlogn)第三种如上图所示,时间复杂度O(m*n) /*public boolean Find(int ta...原创 2020-04-23 11:04:27 · 222 阅读 · 0 评论