![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指offer
wulei_rita
知识搬运工
展开
-
剑指offer(1)二维数组中的查找
剑指offer(1)二维数组中的查找题目分析代码 题目 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 分析 本题中数组从左到右递增,从上到下递增的数组,如果我们单纯使用两层遍历(时间复杂度为n2n^{2}n2显然是浪费了这一条件。有一种方式可以使用一...原创 2019-01-28 15:36:23 · 150 阅读 · 0 评论 -
剑指offer(2)替换空格
剑指offer(2)替换空格题目分析代码 题目 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 分析 一种高效的方式实现这个函数:先计算出一共有多少个空格,空格数*2就是替换后的字符串比原来的字符串增加的长度,从后向前,遇到一个空格就替换。例如: We Are Happy中一共有2个空...原创 2019-01-28 15:37:33 · 127 阅读 · 0 评论 -
剑指offer(3)从头到尾打印链表
剑指offer(3)从头到尾打印链表题目分析代码 题目 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。 分析 拷贝出一个新的链表,需要在函数中开辟空间。 代码 /** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : * ...原创 2019-01-28 15:38:52 · 124 阅读 · 0 评论 -
剑指offer(4)重建二叉树
剑指offer(4)重建二叉树题目分析代码 题目 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 分析 通过前序遍历找到根节点,根据中序遍历找到左右子树,然后递归构建左右子树,再将左右子树和根节点结合。 代码...原创 2019-01-28 15:40:06 · 106 阅读 · 0 评论 -
剑指offer(5)两个栈实现队列
剑指offer(5)两个栈实现队列题目分析代码 题目 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 分析 在入队列的时候将所有的元素都存放在stack1,再进入stack1。出队列的时候将所有的元素都放到stack2中,再从stack2中出。 代码 class Solution { public: void push(int node) { ...原创 2019-01-28 15:41:32 · 127 阅读 · 0 评论