博客专栏  >  编程语言   >  剑指OFFER-PHP实现

剑指OFFER-PHP实现

剑指offer是每个走向职场的程序员必刷的一本优秀的题目,使用php将里面的问题解决了一遍,给广大的php战友们参考。

关注
2 已关注
36篇博文
  • 剑指offer-和为s的数列

    题目 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他...

    2017-08-23 19:57
    44
  • 剑指offer-字符串左移

    题目 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abc...

    2017-08-23 20:06
    35
  • 剑指offer-判断平衡二叉树

    题目 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 题解 两个比较重要的部分:首先左右子树相差不大于1。然后所有子树都要为平衡二叉树。 代码<?php/*class TreeNode{ ...

    2017-08-23 21:03
    117
  • 剑指offer-二叉树的下一个节点

    题目 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 题解 分为三种情况: 1、pNode有右子树...

    2017-08-23 21:10
    33
  • 剑指offer-判断二叉树是否对称

    题目 请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 题解 递归判断二叉树两侧。 代码<?php/*class TreeNode...

    2017-08-23 21:18
    32
  • 剑指offer-字符流中第一个不重复的字符

    题目> 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符”go”时,第一个只出现一次的字符是”g”。当从该字符流中读出前六个字符“google”时,第一个只出...

    2017-08-23 21:25
    59
  • 剑指offer-统计一个数字在排序数组中出现的次数-PHP

    题目 统计一个数字在排序数组中出现的次数。 题解 1、既然是排序数组,使用二分查找是效率最高的。找到之后再向两侧拓展一下。 代码<?phpfunction GetNumberOfK($data...

    2017-08-22 22:01
    312
  • 剑指offer-连续子数组的最大和

    题目 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量...

    2017-08-22 22:02
    300
  • PHP实现非递归先序、中序、后序遍历二叉树

    先序遍历:利用栈先进后出的特性,先访问根节点,再把右子树压入,再压入左子树。这样取出的时候是先取出左子树,最后取出右子树。 function preorder($root){ $stack ...

    2017-04-22 11:02
    337
  • 剑指OFFER-二叉树中和为某一值的路径

    题目 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 题解 递归遍历二叉树 代码/*递归版本*//...

    2017-08-14 11:46
    30
  • 剑指OFFER-二进制中1的个数

    题目 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 题解 这是个位运算的题目。 解法一:可以通过按位与操作,通过将每一位和1与操作来求出1的个数。 解法二(最优...

    2017-08-22 16:23
    67
  • 剑指offer-用两个栈实现队列

    题目 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 题解 初始化两个栈。 push:压入栈1. pop:栈2不为空时,栈2出栈,栈2为空时,...

    2017-08-22 19:38
    230
  • 剑指offer-包含min函数的栈

    题目 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。 题解 四个功能: push pop top:栈顶元素 min:找出最小的元素 代码<?ph...

    2017-08-22 21:52
    307
  • 剑指OFFER-二维数组中的查找

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

    2017-03-19 15:54
    1833
  • 剑指OFFER-替换空格

    题目 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 **题解 用str_repla...

    2017-03-19 16:25
    1723
  • 剑指OFFER-合并两个排序的链表-PHP

    题目 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 题解 简单的合并排序。由于两个数列本来就是递增的,所以每次将两个数列中较小的部分拿过来就可以...

    2017-03-20 19:19
    1728
  • 剑指offer-链表中倒数第K个节点-php

    题目 输入一个链表,输出该链表中倒数第k个结点。 题解 注意这个题目是返回节点,而不是返回值。返回值的话可以用栈来存储。返回节点则不能这样做。 设置两个指针,先让第一个指针移动k-1次。...

    2017-03-20 20:02
    1783
  • 剑指offer-栈的压入、弹出序列-php

    题目 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序...

    2017-03-22 20:51
    1831
  • 剑指offer-从上往下打印二叉树-php

    题目 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 题解 每层树从左到右打印,所以需要将节点的左右子树存起来,因为先进先出,所以用队列。 代码/*class TreeNode{ ...

    2017-03-23 23:11
    1671
  • 剑指offer-二叉树的深度-php

    题目 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 题解 两种方法,一种是递归,深度优先遍历二叉树。另一种是非递归,...

    2017-03-23 23:55
    1840

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