11 2018 档案
摘要:0 引言 1 抽象问题具体化 举例1:判断序列{2,1,3,5,7,8,6,4}是否是二叉搜索树的后序遍历序列. 1)4是根结点,以根结点为基准,将序列二分,左子树为从左到右直到某个数大于4为止;右子树为从该数到倒数第二个数为止, 同时对这其中的每个数进行判断,必须每个数都大于4才可以,对当前树的有
阅读全文
摘要:0 引言 1 抽象问题具体化 举例1: 前序遍历序列:{1,2,3} 中序遍历序列:{2,1,3} 重建二叉树 举例2: 前序遍历序列:{1,2,4,7,3,5,6,8 } 中序遍历序列:{4,7,2,1,5,3,8,6 } 重建二叉树 2 具体问题抽象分析 先上图. 1)前序遍历的第一个数是根结点
阅读全文
摘要:0 引言 1 抽象问题具体化 举例1:序列1,2,3,4,5为某栈的压入顺序,判断4,5,3,2,1是否为该压栈序列对应的一个弹出序列。 可知4,5,3,2,1是该压栈序列对应的一个弹出序列 举例2:序列1,2,3,4,5为某栈的压入顺序,判断4,3,5,1,2是否为该压栈序列对应的一个弹出序列。
阅读全文
摘要:0 引言 1 抽象问题具体化 2 具体问题抽象分析 需要解决的两个主要问题如下。 (1)如何在复杂度O(1)的条件下,返回当前栈的最小值。解决思路是定义一个minNum变量保存当前栈的最小值。 (2)另外一个问题是如果当前最小值被弹出了,如何更新minNum的值。解决思路是定义一个新的栈,该栈用于保
阅读全文
摘要:0 引言 1 抽象问题具体化 打印顺序为: 1)最外圈,一直到最里圈,一圈一圈地打印; 2)最外圈的打印顺序为:左上角到右上角,右上角到右下角,右下角到左下角,左下角到左上角 举例1: {1},输出{1} 举例2: {{1,2},{3,4}},输出{1,2,4,3} 举例3: {1,2,3,4,5}
阅读全文
摘要:0 引言 问题:请完成一个函数,输入一个二叉树,该函数输出它的镜像. 二叉树的结点定义如下: 1 抽象问题具体化 举例1: 举例2: 举例3:输入为空,返回为空 2 具体问题抽象分析 语言+伪代码描述算法流程 (1)第一层遍历:前序递归遍历给定二叉树 1)对头结点输入有效性进行判断 2)完成前序递归
阅读全文
摘要:0 引言 题目:输入两棵二叉树A和B,判断B是不是A的子结构。约定空树不是任意一个树的子结构。二叉树结点的定义如下: 1 抽象问题具体化 举例1: 举例2:A是任意树,B为空树,返回true; 举例3:A是空树,若B不是空树,返回false,否则,返回true。 2 具体问题抽象化 语言描述算法,并
阅读全文
摘要:0 引言 题目描述:输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。链表结点定义如下。 1 抽象问题具体化 2 具体问题抽象化 (1)定义接口: ListNode* Merge(ListNode* p, ListNode* q); (2)操作流程 1)输入两个链表,并定
阅读全文
摘要:0 引言 大概是从项目结题之后开始刷题的。自己的目标也很明确,一定要去民企,最好是互联网公司。但是刷了一些题目之后,发现自己虽然能解决一些问题,但是有时候脑子会卡壳,无法从全局上把握问题。思考之后感觉是自己程序设计以及系统性思维的能力还没有上来,因此写个帖子总结一下,此贴会不断更新。以下是本人对“如
阅读全文