博客专栏  >  综合   >  剑指Offer

剑指Offer

个人刷《剑指Offer》的思路以及代码。

关注
1 已关注
49篇博文
  • 剑指Offer系列-面试题57:删除链表中重复的结点

    题目:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 思路:首先创建一个...

    2017-03-22 20:48
    857
  • 剑指Offer系列-面试题3:二维数组中的查找

    题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该参数。 #include #i...

    2016-12-22 16:42
    102
  • 剑指Offer系列-面试题4:替换空格

    题目:请实现一个函数,把字符串中的每个空格替换成“%20”。例如输入“We are happy.”,则输出“We%20are%20happy.”。 #include using namesp...

    2016-12-22 17:17
    87
  • 剑指Offer系列-面试题5:从尾到头打印链表

    题目:输入一个链表的头结点,从尾到头反过来打印出每个结点的值。 #include #include using namespace std; struct ListNode { in...

    2016-12-22 17:59
    105
  • 剑指Offer系列-面试题6:重建二叉树

    题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,...

    2016-12-23 21:03
    94
  • 剑指Offer系列-面试题7:用两个栈实现队列

    题目:用两个栈实现队列,队列有两个函数,appendTail和deleteHead,分别完成在队尾添加数据和出队头。 #include #include #include using nam...

    2016-12-23 22:03
    149
  • 剑指Offer系列-面试题8:旋转数组的最小数字

    题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数...

    2017-02-03 15:05
    99
  • 剑指Offer系列-面试题9:斐波那契数列

    题目:写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项。 效率很低的解法(递归实现):long long Fibonacci(unsigned int n) { if(n <...

    2017-02-03 16:22
    133
  • 剑指Offer系列-面试题10:二进制中1的个数

    题目:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如把9表示成二进制数是1001,有2位是1.因此如果输入9,该函数输出2。

    2017-02-04 15:02
    127
  • 剑指Offer系列-面试题11:数值的整数次方

    题目:实现函数double Power(double base, int exponent)。求base的exponent次方,不得使用库函数,同时不需要考虑大数问题。#include using...

    2017-02-04 18:00
    76
  • 剑指Offer系列-面试题12:打印1到最大的n位数

    题目:输入数字n,按顺序打印出从1到最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的三位数即999。 PS:代码没看懂 #include #include "string.h"...

    2017-02-07 15:10
    71
  • 剑指Offer系列-面试题13:在O(1)时间删除链表结点

    题目:给定单向链表的头指针和一个结点指针,指定一个函数在O(1)时间删除该结点。链表结点与函数的定义如下: struct ListNode { int m_nValue; Lis...

    2017-02-07 15:22
    72
  • 剑指Offer系列-面试题14:调整数组顺序使奇数位于偶数前面

    题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。 void reOrderArray(vector &array) { ...

    2017-02-14 22:04
    132
  • 剑指Offer系列-面试题15:链表中倒数第K个结点

    题目:输入一个链表,输出该链表中倒数第K个结点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾结点是倒数第1个结点。例如一个链表有6个结点,从头结点开始他们的值依次是1、2、3、4、5、6。这个...

    2017-02-15 14:09
    94
  • 剑指Offer系列-面试题16:反转链表

    题目:定义一个函数,输入一个链表的头结点,反转该链表并输出翻转后链表的头结点。链表结点定义如下:struct ListNode { int value; ListNode *pNext...

    2017-02-15 16:41
    111
  • 剑指Offer系列-面试题17:合并两个排序的链表

    题目:输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。链表结点定义如下:struct ListNode { int value; ListNode *pN...

    2017-02-15 18:29
    81
  • 剑指Offer系列-面试题18:树的子结构

    题目:输入两颗二叉树A和B,判断B是不是A的子结构。二叉树结点的定义如下:struct BinaryTreeNode { int m_nValue; BinaryTreeNode* m...

    2017-02-16 16:30
    65
  • 剑指Offer系列-面试题19:二叉树的镜像

    题目:请完成一个函数,输入一个二叉树,该函数输出它的镜像。二叉树的结点定义如下:struct BinaryTreeNode { int m_nValue; BinaryTreeNode...

    2017-02-16 22:34
    86
  • 剑指Offer系列-面试题20:顺时针打印矩阵

    题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。例如:如果输入如下矩阵: 1    2    3    4 5    6    7    8 9    10  11  12 13 ...

    2017-02-21 22:02
    110
  • 剑指Offer系列-面试题21:包含min函数的栈

    题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数,在该栈中,调用min、push及pop的时间复杂度都是O(1)。 思路:建立一个新的栈minStack,每次push的时...

    2017-02-22 22:09
    136

img博客搬家
img撰写博客
img专家申请
img意见反馈
img返回顶部