剑指Offer
nawuyao
这个作者很懒,什么都没留下…
展开
-
《剑指Offer》学习笔记——替换空格
题目描述 :请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。class Solution {public: void replaceSpace(char *str,int length) {//思路就是计算出替换后的字符串的长度,利用两个指针,原创 2016-04-04 21:54:17 · 412 阅读 · 0 评论 -
《剑指Offer》学习笔记——从尾到头打印链表
题目:输入一个链表,从尾到头打印链表每个节点的值。输入:链表的表头输出:需要打印的“新链表”的表头面试小提示:在面试中如果我们打算修改输入的数据,最好先问面试官是不是允许做修改解决这个问题肯定是要遍历链表,遍历的顺序是从头到尾的顺序,而输出的顺序是从尾部到头部,这是典型的“后进先出”,我们自然而然想到用“栈”来实现这种后进先出的结构。这种思路的实现代码是:/***原创 2016-04-05 17:35:43 · 275 阅读 · 0 评论 -
《剑指Offer》学习笔记——重建二叉树
题目描述:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。#include #include #include #include using namespace std;struct Tree原创 2016-04-05 20:16:25 · 393 阅读 · 0 评论 -
《剑指Offer》学习笔记——链表中倒数第K个结点
题目:输入一个链表,输出链表中倒数第k个节点,为了符合大多数人的习惯,本题从1开始计数,即链表的尾巴节点是倒数第一个节点。方法1:先遍历链表得到链表的个数n,倒数第k个节点就是n-k+1再遍历一次链表,找到第n-k+1个节点就是倒数第k个节点;这种方法遍历两次链表;方法2:先遍历链表把链表压入一个栈,再出栈,第k次出栈就是第k个节点;方法3:先反转链表,再遍历方法4原创 2016-04-06 16:14:04 · 321 阅读 · 0 评论 -
《剑指Offer》学习笔记——反转链表
题目描述输入一个链表,反转链表后,输出链表的所有元素。分析:为了正确的反转一个链表,需要调整表中的指针方向。假设把i结点之前的所有结点的m_pNext都指向前一个结点,会导致链表在i和i后的那个结点之间断裂。所以我们需要在调整i结点的m_pNext之前,把i后的结点保存下来。此外还需要i之前的那个结点,因为我们要把i的m_pNext指向i前面的那个结点。所以相应的我们要定义三个指针原创 2016-04-06 20:32:55 · 323 阅读 · 0 评论 -
《剑指Offer》学习笔记——数值的整数次方
题目描述:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。分析:我们知道,当指数为负值时,可以先对指数求绝对值,然后算出次方后再取倒数。既然是求倒数,我们就会想到如果对0取倒数怎么办?当底数是0且指数为负时,如果不做特殊处理,就会出现对0取倒数从而导致程序运行错误。那么如果告诉函数的调用者出现了这种错误呢?有三种方法:返回值原创 2016-04-06 21:24:24 · 349 阅读 · 0 评论 -
《剑指Offer》学习笔记——面试
一般每一轮面试都会有三个环节。首先是行为面试,面试官在这一环节中对照简历询问应聘者的项目经验和掌握的技能。在介绍项目经验时(包括在简历上介绍和面试时口头介绍),应聘者不必详述项目的背景,而是要突出介绍自己完成的工作及取得的成绩;接下来是技术面试,在这一环节中,面试官除了关注应聘者的编程能力和技术功底外,比如:基础知识是否扎实、能否写出高质量的代码、思路是否清晰、是否有优化效率的能力等,还会原创 2016-07-05 22:43:02 · 347 阅读 · 0 评论