剑指Offer
糖糖¥
一枚努力找实习的小白,在此写下自己的读书笔记。记录生活
展开
-
剑指Offer面试题4 替换空格
题目要求:请实现一个函数,把字符串中的每个空格替换成"%20"。例如输入"We are happy.",则输出"We%20are%20happy."解题思路1:在原有的字符串上进行替换,将原来的一个空格替换成"%"、"2"、"0"这3个字符(字符串会因此变长,我们要保证原有的字符串后面有足够多的空余内存)。做法是扫描字符串每一次遇到空格时做替换,将一个字符替换成3个字符,然后将空格后面原创 2018-11-09 13:21:35 · 124 阅读 · 0 评论 -
剑指Offer面试题3 二维数组中的查找
题目描述:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 1 2 8 9 2 4 9 12 4 7 10 13 6 8 11 15 ...原创 2018-11-09 09:14:54 · 123 阅读 · 0 评论 -
剑指Offer面试题5 从头到尾打印链表
题目:输入一个链表的头结点,从尾到头反过来打印出每个结点的值。链表结点定义如下:struct ListNode{ int m_nKey; ListNode* m_pNext;};思路一:将链表中的连接指针反转过来,改变链表的方向就可以从头到尾输出了。不足:这样做会改变原来链表的结构。思路二:遍历链表,遍历顺序是从头到尾而输出顺序却是从尾到头。也就是说第一个遍...原创 2018-11-11 09:19:55 · 116 阅读 · 0 评论 -
剑指Offer面试题6 重建二叉树
题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入的前序遍历序列{1,2,4,7,3,5,6,8}和后序遍历序列{4,7,2,1,5,3,8,6},则重建出如图所示的二叉树二叉树结点定义如下:struct BinaryTreeNode{ int m_nValue; BinaryTreeNod...原创 2018-11-13 17:47:46 · 99 阅读 · 0 评论 -
剑指Offer面试题7 用二个栈实现队列
题目:用2个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的功能。队列的声明:template <typename T> class CQueue{public: CQueue(void); ~CQueue(void); void appendT...原创 2018-11-14 14:37:52 · 76 阅读 · 0 评论