![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指Offer
面试准备
tlfclwx
读书静心
展开
-
剑指 Offer 07. 重建二叉树
剑指 Offer 07. 重建二叉树 难度:中等 题意 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 例如,给出 前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = [9,3,15,20,7] 返回如下的二叉树: 3 / \ 9 20 / \ 15 7 限制: 0 <= 节点个数 <= 5000 解题思路 前序遍历的顺序为:根左右,中序遍历的顺序为:左原创 2021-04-10 15:19:50 · 48 阅读 · 0 评论 -
剑指 Offer 06. 从尾到头打印链表
剑指 Offer 06. 从尾到头打印链表 难度:简单 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。 示例 1: 输入:head = [1,3,2] 输出:[2,3,1] 限制: 0 <= 链表长度 <= 10000 解题思路 直接创建一个vector 对象,循环链表的时候,把链表的值依次输入,最后用reverse()方法,翻转vector对象返回即可。 C++解法 /** * Definition for singly-linked list. * struct原创 2021-04-10 15:06:33 · 41 阅读 · 0 评论 -
剑指 Offer 05. 替换空格
剑指 Offer 05. 替换空格 难度:简单 题意 请实现一个函数,把字符串 s 中的每个空格替换成"%20"。 示例 1: 输入:s = "We are happy." 输出:"We%20are%20happy." C++解法 class Solution { public: string replaceSpace(string s) { string q = ""; for(auto ss : s) { if(ss == ' ') {原创 2021-04-10 15:01:49 · 37 阅读 · 0 评论 -
剑指 Offer 04. 二维数组中的查找
剑指 Offer 04. 二维数组中的查找 题意 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 示例: 现有矩阵 matrix 如下: [ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, 23, 26,原创 2021-04-10 14:58:37 · 39 阅读 · 0 评论 -
剑指 Offer 03. 数组中重复的数字
剑指 Offer 03. 数组中重复的数字 题意 找出数组中重复的数字。 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 输入: [2, 3, 1, 0, 2, 5, 3] 输出:2 或 3 解题思路 题目中说是一定存在且不知道有几个重复的,且只输出一个就可以,那我们可以先排序,然后遍历判断相邻的两个数是否相等就可以了,把第一个遇到的重复的数字输出。 C++解法 复原创 2021-04-10 14:49:10 · 35 阅读 · 0 评论