博客专栏  >  编程语言   >  经典面试题集锦

经典面试题集锦

剑指offer面试题集锦

关注
2 已关注
40篇博文
  • 【面试题】剑指Offer-47-不用加减乘除做加法

    题目概述 解题思路 比如16+9我们会怎么加呢 步骤1:先不进位,算出结果为 16+9=15(没有进位) 步骤2:找出进位的位置,9+6会产生进位,也就是个位1,左移一位成为十位是进位...

    2017-04-20 12:16
    207
  • 【面试题】剑指Offer-48-不能被继承的类

    题目概述 解题思路 方法1 定义一个A类 如果B类想要继承A类的话 就会调用A类的构造函数 那么只要将A类的构造函数设置为私有成员 B类便无法继承A类了 然后我们可以通过设置一个函数,通过在堆上开辟空...

    2017-04-22 15:25
    296
  • 【面试题】剑指Offer-49-模拟实现atoi()函数

    题目概述 解题思路 就像本篇博文的题目所介绍的那样 这道题目就是让模拟实现atoi函数 结合库中的atoi函数,我们需要处理的情况有以下几种 各种情况分析 情况1:正常情况,给的字...

    2017-04-22 15:45
    352
  • 【面试题】剑指Offer-50-求两个节点的最近公共祖先

    题目概述 一颗二叉树,给出两个节点,求这两个节点的公共的祖先节点(要求的是离他们是最近的) 比如,6和8的公共节点为1,4,但是最近公共节点为4 解题思路 假设我们求6和8两个节点的公...

    2017-04-22 15:56
    513
  • 【面试题】剑指Offer-46-从1加N

    题目概述 解题思路 这道题目不能用循环,同时呢,禁用了if等判断语句表示也不可以用递归求解 这道题目考的是对C++语法内容的熟练程度 这道题目可以从构造函数,虚函数,函数指针以及模板求...

    2017-04-19 19:50
    712
  • 【面试题】剑指Offer-40-数组中只出现一次的数字

    题目概述 解题思路 我们知道,一个数和自己异或的结果是0 如果这个整形数组中只有一个数字出现一次的话,全部异或后的结果就是出现一次的数字 由于这道题目是两个数字a,b出现了一次,我们也...

    2017-04-19 16:10
    833
  • 【面试题】剑指Offer-35-第一个只出现一次的字符

    题目概述 解题思路 定义一个256个长度的字符数组 将每一个元素初始化成0 遍历一遍字符串 将遇到字符对应ASCII码的对应数组下标位置的元素+1 遍历完后 再次重新遍历字符串,将遇到的字符,根据...

    2017-04-13 14:14
    130
  • 【面试题】剑指Offer-37-求两个链表的第一个公共节点

    题目概述 解题思路 首先,分别求出两个链表L1,L2的长度L1_length,L2_length 比较L1_length,L2_length的大小,并求出差值的绝对值K 定义两...

    2017-04-17 18:43
    170
  • 【面试题】剑指Offer-39-求二叉树的深度和判断一颗树是否为平衡二叉树

    题目概述 题目1:求二叉树的深度 题目2:判断一颗二叉树是否为平衡二叉树 解题思路 求二叉树的深度 二叉树的深度呢,这个问题比较简单 递归遍历一遍二叉树,每到一个节点,便返...

    2017-04-18 09:29
    459
  • 【面试题】剑指Offer-30-最小的第K个数

    题目概述 解题思路 方法1 将数组进行排序,排成升序 则最小的K个数便是数组的前K个数字了 方法2 利用快排的思想 利用单趟排序 如果排的数字是第K个位置 那么其以及其左边的数字就是前面最小的了 ...

    2017-04-12 10:29
    369
  • 【面试题】剑指Offer-31-求连续子数组的最大和

    题目概述 解法思路 定义tmpSum = 0 和 Sum = 0 遍历这个数组 当tmpSum小于0时,直接将tmpSum赋值为0 当tmpSum不小于0时,将tmpSum加上当前的...

    2017-04-12 10:37
    279
  • 【面试题】剑指Offer-26-复杂链表的复制

    题目概述

    2017-04-10 10:41
    141
  • 【面试题】剑指Offer-27-将二叉搜索树转换成排序的双向链表

    题目概述 解题思路 1、递归求解,中序遍历,先找到最左节点 2、定义PrevNode ,记录双向链表中前一个节点 3、递归内部,将当前节点Root的left指向Prev 4、递归内部...

    2017-04-10 11:38
    161
  • 【面试题】剑指Offer-29-找到出现次数超过一半的数字

    题目概述 解题思路 方法1 进行排序,排序后,超过一半次数的数字一定会出现数组的最中间的位置上 方法2 利用快排的思想,单次排序,会将数组分成两个区间 通过判断所分区间的中间元素是...

    2017-04-11 11:42
    328
  • 【面试题】剑指Offer-21-包含Min函数的栈

    题目概述 这道题目很熟悉了 在栈和队列面试题中遇到并讲解过 解决方法 在栈中多用一个栈来保存最小值 当Min栈为空,或者入栈的元素小于Min栈的栈顶元素,则在入元素栈的同时 将该元...

    2017-04-09 14:34
    666
  • 【面试题】剑指Offer-23-从上往下打印二叉树

    题目概述 解题思路 题目要求的是层序遍历 关于层序遍历,我们需要借助辅助的队列 从根节点开始,入队 然后每次将队头的节点Front的两个孩子Left和Right入队,并将Front出...

    2017-04-09 14:57
    312
  • 【面试题】剑指Offer-19-二叉树的镜像

    题目概述 解题思路 首先,我们需要知道什么是二叉树的镜像 如图所示,这两颗二叉树便互为镜像 实现方法,前序遍历这颗二叉树 如果遇到空节点,就返回 否则交换两个子孩子 遍历...

    2017-04-08 19:17
    410
  • 【面试题】剑指Offer-20-顺时针打印矩阵

    题目概述 代码实现 //打印单独的一圈 void PrintCricle(int matrix[], int columns, int rows, int start) { //定义结束...

    2017-04-08 19:21
    283
  • 【面试题】剑指Offer-17-合并两个有序的单链表

    题目概述 解题思路 定义两个指针pCur1,pCur2分别遍历两个链表 定义pPrev1,pPrev2指向pCur1,pCu2的前一个节点 根据pCur1,pCur2指向数据的大小进行...

    2017-04-06 11:25
    569
  • 【面试题】剑指Offer-18-判断一颗树是否为另一颗树的子树

    题目概述 解题思路 这里用到递归的思想 先递归【HasSubTree】找到和子树相同值的节点 然后再用另一个递归函数【DoseTree1HasTree2】判断是否相等 如果遍历到Su...

    2017-04-06 11:40
    394

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