刷一遍《剑指Offer》,你还需要这些知识!

Posted gaolight

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了刷一遍《剑指Offer》,你还需要这些知识!相关的知识,希望对你有一定的参考价值。

因为时间紧和基础薄弱,一刷《剑指Offer》就变成了速看??。

我按照:

1、看题目思考一会;

2、上网找找关于题目里不懂的知识点;

3、看评论和官方题解的解法,尽量看懂,并及时弄懂不懂的地方;

4、将搜索到的资料和感觉优秀的解法记录在这个博客里。

这四步来完成一刷,之后再仔细二刷。

T07、深入学习二叉树(一) 二叉树基础:https://www.jianshu.com/p/bf73c8d50dc2

  二叉树前序遍历和中序遍历的特点(前序遍历的顺序:根左右 ;中序遍历的顺序:左根右):首先利用前序遍历找到根节点,之后利用前序遍历数组找到的根节点找到对应中序遍历数组根节点的下标,

  Arrays.copyOfRange(T[ ] original,int from,int to)将一个原始的数组original,从下标from开始复制,复制到上标to,生成一个新的数组。

  注意这里包括下标from,不包括上标to。

 

T08、Stack的基本使用:初始化Stack stack=new Stack、判断是否为空stack.empty()、取栈顶值(不出栈)stack.peek()、进栈stack.push(Object)、出栈 stack.pop();

队列方法: add增加一个元索; remove移除并返回队列头部的元素    ;element返回队列头部的元素 offer添加一个元素并返回true   poll移除并返问队列头部的元素   peek返回队列头部的元素        put添加一个元素                

take 移除并返回队列头部的元素    

队列(Queue):是限定只能在表的一端进行插入和在另一端进行删除操作的线性表。栈(Stack):是限定只能在表的一端进行插入和删除操作的线性表。

 

一、规则不同:1. 队列:先进先出(First In First Out)FIFO          2. 栈:先进后出(First In Last Out )FILO

二、对插入和删除操作的限定不同1. 队列:只能在表的一端进行插入,并在表的另一端进行删除。2. 栈:只能在表的一端插入和删除。

三、遍历数据速度不同:

1. 队列:基于地址指针进行遍历,而且可以从头部或者尾部进行遍历,但不能同时遍历,无需开辟空间,因为在遍历的过程中不影响数据结构,所以遍历速度要快。

2. 栈:只能从顶部取数据,也就是说最先进入栈底的,需要遍历整个栈才能取出来,而且在遍历数据的同时需要为数据开辟临时空间,保持数据在遍历前的一致性。

   

 

 

 

 

 

  

 

以上是关于刷一遍《剑指Offer》,你还需要这些知识!的主要内容,如果未能解决你的问题,请参考以下文章

剑指offer复盘——面试准备阶段

剑指 offer 刷题记录

剑指offer-从尾到头打印链表

剑指Offer——旋转数组的最小数字

2.剑指Offer --- 面试需要的基础知识

剑指offer59