剑指offer
记录解题的思路
三升画
这个作者很懒,什么都没留下…
展开
-
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5
题目: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 思路: pre: 1 2 4 7 3 5 6 8 in: 4 7 2 1 5 3 8 6 每次取前序遍历的第一个值,然后在中序遍历中...原创 2020-01-02 12:40:16 · 219 阅读 · 0 评论 -
2.请实现一个函数,将一个字符串中的每个空格替换成
题目: 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 思路: 第一次遍历:统计空格的数量count; 第二次遍历:从右向左遍历,进行插入。 代码: class Solution { public: void replaceSpace(char *str,int length) { ...原创 2020-01-01 23:44:09 · 243 阅读 · 0 评论 -
1.在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
思路: 1 2 3 2 5 7 3 9 10 从左下角进行遍历,当target小于当前元素时,往右走,因为当前列上面的元素一定小于target;当terget大于当前元素时,忘上走,因为当前行右边所有元素一定大于target;当等于当前元素时,则查找成功;若遍历完没有找到,则失败。 代码: class Solution { public: bool Fin...原创 2020-01-01 21:52:32 · 139 阅读 · 0 评论