摘要: 剑指offer 题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 思路: 查找前序遍历中第一个元素在中 阅读全文
posted @ 2018-07-12 10:43 罗贱人 阅读(83) 评论(0) 推荐(0) 编辑
摘要: 剑指Offer 题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。 思路: 后进先出,栈。 / public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; 阅读全文
posted @ 2018-07-11 19:59 罗贱人 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 时间复杂度是 O(N), 空间复杂度也是 O(N) public class Solution { public String r 阅读全文
posted @ 2018-07-11 19:33 罗贱人 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 剑指Offer 题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 思路: 如上图:一共4行4列,假如要查找的数是5。 1. 先从右上角开始 9 大于 5,第 4 列可以去掉 阅读全文
posted @ 2018-07-11 18:43 罗贱人 阅读(78) 评论(0) 推荐(0) 编辑
摘要: 剑指Offer 题目描述 在一个长度为n的数组里的所有数字都在0到n 1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2 第一种 阅读全文
posted @ 2018-07-11 16:45 罗贱人 阅读(145) 评论(0) 推荐(0) 编辑
摘要: what ? why ? when ? how ? why 为什么要用堆? what 什么是堆? 堆有什么特点? how 如何操作堆(建立、插入、删除、查找)? when 什么是堆? 堆是特殊的“队列”,从堆中取出元素是按照元素优先级大小,而不是元素进入队列的先后顺序。 堆是一颗完全二叉树,其结点的 阅读全文
posted @ 2018-07-11 13:14 罗贱人 阅读(180) 评论(0) 推荐(0) 编辑
摘要: what ? when ? why ? how ? what JVM内存结构指的是哪一块区域? JVM内存划分的各个区域都存储什么信息? 每个划分的区域有什么特点? when 划分的区域有没有随着jdk的变动有所改动? how JVM内存结构如何划分? why JVM内存结构指的是哪一块区域? ja 阅读全文
posted @ 2018-07-09 14:26 罗贱人 阅读(222) 评论(0) 推荐(0) 编辑
摘要: why? what? when? how? 最近几天看了某个大佬写的学习总结,觉得这个方式不错就引进了。 why 为什么要用平衡二叉树? 二叉搜索树 二叉搜索树的查找效率和 BST 建立的时候节点输入顺序相关。 1. 若输入节点顺序 1、2、3、4、5 树的深度为 5,查找效率 O(N),平均查找长 阅读全文
posted @ 2018-07-06 13:33 罗贱人 阅读(998) 评论(0) 推荐(0) 编辑
摘要: 欠的账总是要还的嘻嘻 定义 1. 非空左子树的所有键值小于其根结点的键值 2. 非空右子树的所有键值大于其根结点的键值 3. 左、右子树都是二叉搜索树 特点 1. 最小值在二叉搜索树的最左边 2. 最大值在二叉搜索树的最右边 结点定义 class BinaryTreeNode { int val; 阅读全文
posted @ 2018-06-29 17:49 罗贱人 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 在开发中进入一个方法后想要到原来那行 ctrl+alt+左 回到上一步 ctrl+alt+右 回到下一步 阅读全文
posted @ 2018-06-29 15:29 罗贱人 阅读(18551) 评论(2) 推荐(2) 编辑