
笔试面经
Sui Xin
个人博客:https://suixinblog.cn
展开
-
[剑指Offer]Python版题解
本文首发于我的个人博客Sui Xin’s Blog原文: https://suixinblog.cn/2019/04/target-offer-python-solution.html 作者: Sui Xin以牛客网《剑指Offer》题目为准,共66道序号题解考点1[剑指Offer]二维数组中的查找数组2[剑指Offer]替换空格字符串3...原创 2020-02-19 16:03:29 · 333 阅读 · 0 评论 -
[剑指Offer]包含min函数的栈
本文首发于我的个人博客Suixin’s Blog原文: https://suixinblog.cn/2019/03/target-offer-min-stack.html 作者: Suixin题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。解题思路使用一个辅助栈,用来存储当前栈中的最小值,辅助栈中元素数量和原始栈一样多。...原创 2019-03-05 17:27:53 · 177 阅读 · 0 评论 -
[剑指Offer]栈的压入、弹出序列
本文首发于我的个人博客Suixin’s Blog原文: https://suixinblog.cn/2019/03/target-offer-is-pop-order.html 作者: Suixin题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,...原创 2019-03-05 17:29:01 · 151 阅读 · 0 评论 -
[剑指Offer]旋转数组的最小数字
本文首发于我的个人博客Suixin’s Blog原文: https://suixinblog.cn/2019/03/target-offer-min-num-in-rotate-array.html 作者: Suixin题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为...原创 2019-03-02 17:02:15 · 766 阅读 · 0 评论 -
[剑指Offer]斐波那契数列
本文首发于我的个人博客Suixin’s Blog原文: https://suixinblog.cn/2019/03/target-offer-fibonacci-sequence.html 作者: Suixin斐波那契数列a0=0a1=a2=1an=an−1+an−2a_0=0\\a_1=a_2=1\\a_n=a_{n-1}+a_{n-2}a0=0a1=a2=1an=an−...原创 2019-03-02 17:04:18 · 159 阅读 · 0 评论 -
[剑指Offer]跳台阶
本文首发于我的个人博客Suixin’s Blog原文: https://suixinblog.cn/2019/03/target-offer-jump-floor.html 作者: Suixin题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。解题思路本质上,跳台阶的跳法是斐波那契数列。假设有8级台阶,那么...原创 2019-03-02 17:05:37 · 124 阅读 · 0 评论 -
[剑指Offer]变态跳台阶
本文首发于我的个人博客Suixin’s Blog原文: https://suixinblog.cn/2019/03/target-offer-jump-floor-pro.html 作者: Suixin题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。解题思路递归法。和跳台阶的思路一样,但是如果台阶数较多的话浪费...原创 2019-03-02 17:07:51 · 144 阅读 · 0 评论 -
[剑指Offer]矩形覆盖
本文首发于我的个人博客Suixin’s Blog原文: https://suixinblog.cn/2019/03/target-offer-rectangle-cover.html 作者: Suixin题目描述我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?解题思路本质上,覆盖的方法数为斐波那契数列。...原创 2019-03-02 17:46:51 · 156 阅读 · 0 评论 -
[剑指Offer]从上往下打印二叉树
本文首发于我的个人博客Suixin’s Blog原文: https://suixinblog.cn/2019/03/target-offer-print-from-top-to-bottom-binary-tree.html 作者: Suixin题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。解题思路二叉树的层次遍历,使用队列来实现。见二叉树的七种遍历方法。代码P...原创 2019-03-05 22:32:56 · 140 阅读 · 0 评论 -
[剑指Offer]数值的整数次方
本文首发于我的个人博客Suixin’s Blog原文: https://suixinblog.cn/2019/03/target-offer-int-power.html 作者: Suixin题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。解题思路使用递归的方法,将整数次幂除2,底数变为原来的平方。不能整除的向下...原创 2019-03-03 21:29:27 · 181 阅读 · 0 评论 -
[剑指Offer]二进制中1的个数
本文首发于我的个人博客Suixin’s Blog原文: https://suixinblog.cn/2019/03/target-offer-bin-num1.html 作者: Suixin题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。解题思路问题的关键点在于对于正数,如何得到它的二进制表示;对于负数,如何得到它的补码。负数在计算机中的二进制表示(原码、...原创 2019-03-04 13:13:15 · 142 阅读 · 0 评论 -
[剑指Offer]链表中倒数第k个结点
本文首发于我的个人博客Suixin’s Blog原文: https://suixinblog.cn/2019/03/target-offer-linked-list-kth-node-to-tail.html 作者: Suixin题目描述输入一个链表,输出该链表中倒数第k个结点。解题思路循环将链表的所有结点存下来,对于有效的k直接取出对应结点即可。代码Python(2.7.3)...原创 2019-03-04 21:18:50 · 127 阅读 · 0 评论 -
[剑指Offer]调整数组顺序使奇数位于偶数前面
本文首发于我的个人博客Suixin’s Blog原文: https://suixinblog.cn/2019/03/target-offer-reorder-array.html 作者: Suixin题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。代码Py...原创 2019-03-04 21:20:07 · 141 阅读 · 0 评论 -
[剑指Offer]合并两个排序的链表
本文首发于我的个人博客Suixin’s Blog原文: https://suixinblog.cn/2019/03/target-offer-merge-linked-list.html 作者: Suixin题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。解题思路生成一个新的结点,将两个链表的结点依次链在后面。比较时,使用两个指针...原创 2019-03-04 21:21:08 · 246 阅读 · 0 评论 -
[剑指Offer]树的子结构
本文首发于我的个人博客Suixin’s Blog原文: https://suixinblog.cn/2019/03/target-offer-has-subtree.html 作者: Suixin题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)解题思路创建一个新的IsSubtree函数用来递归调用。如果根节点相同,就递归调用该函数,...原创 2019-03-04 21:22:17 · 129 阅读 · 0 评论 -
[剑指Offer]顺时针打印矩阵
本文首发于我的个人博客Suixin’s Blog原文: https://suixinblog.cn/2019/03/target-offer-print-matrix.html 作者: Suixin题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次...原创 2019-03-05 17:25:24 · 194 阅读 · 0 评论 -
[剑指Offer]二叉树的镜像
本文首发于我的个人博客Suixin’s Blog原文: https://suixinblog.cn/2019/03/target-offer-binary-tree-mirror.html 作者: Suixin题目描述操作给定的二叉树,将其变换为源二叉树的镜像。输入描述:代码Python(2.7.3)# -*- coding:utf-8 -*-# class TreeN...原创 2019-03-05 17:23:21 · 141 阅读 · 0 评论 -
[剑指Offer]重建二叉树
本文首发于我的个人博客Suixin’s Blog原文: https://suixinblog.cn/2019/03/target-offer-reconstruct-binary-tree.html 作者: Suixin题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6...原创 2019-03-01 22:17:17 · 102 阅读 · 0 评论 -
[剑指Offer]替换空格
本文首发于我的个人博客Suixin’s Blog原文: https://suixinblog.cn/2019/02/target-offer-replace-space.html 作者: Suixin题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。解题思路略。代码...原创 2019-02-28 21:18:38 · 84 阅读 · 0 评论 -
[剑指Offer]数组中重复的数字
本文首发于我的个人博客Suixin’s Blog原文: https://suixinblog.cn/2019/02/target-offer-repeating-digits.html 作者: Suixin题目描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如...原创 2019-02-28 21:19:11 · 88 阅读 · 0 评论 -
链表的基础知识+Python实现四种链表
本文首发于我的个人博客Suixin’s Blog原文: https://suixinblog.cn/2019/02/linked-list.html 作者: Suixin链表链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer)。由于不必须按顺序存储,链表在插入或删除的时候最快可以...原创 2019-02-28 21:19:54 · 395 阅读 · 0 评论 -
[剑指Offer]从尾到头打印链表
本文首发于我的个人博客Suixin’s Blog原文: https://suixinblog.cn/2019/02/target-offer-reverse-print-linked-list.html 作者: Suixin链表的基础知识+Python实现四种链表题目描述输入一个链表的头节点,按链表值从尾到头的顺序返回一个ArrayList。解题思路正常的思路就是先从前至后依次...原创 2019-02-28 21:20:21 · 107 阅读 · 0 评论 -
[剑指Offer]删除链表中重复的节点
本文首发于我的个人博客Suixin’s Blog原文: https://suixinblog.cn/2019/02/target-offer-linked-list-remove-repetition.html 作者: Suixin链表的基础知识+Python实现四种链表题目描述在一个排序的链表中,存在重复的节点,请删除该链表中重复的节点,重复的节点不保留,返回链表头指针。 例如,链...原创 2019-02-28 21:20:56 · 604 阅读 · 0 评论 -
[剑指Offer]反转链表
本文首发于我的个人博客Suixin’s Blog原文: https://suixinblog.cn/2019/02/target-offer-reverse-linked-list.html 作者: Suixin链表的基础知识+Python实现四种链表题目描述输入一个链表,反转链表后,输出新链表的表头。解题思路只需要一个中间节点过渡一下就好。代码Python(2.7.3)代...原创 2019-02-28 21:21:27 · 109 阅读 · 0 评论 -
[剑指Offer]正则表达式匹配
本文首发于我的个人博客Suixin’s Blog原文: https://suixinblog.cn/2019/02/target-offer-regulation.html 作者: Suixin题目描述请实现一个函数用来匹配包括’.‘和’*‘的正则表达式。模式中的字符’.‘表示任意一个字符,而’*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个...原创 2019-02-28 21:22:01 · 218 阅读 · 0 评论 -
栈的基础知识+Python实现
本文首发于我的个人博客Suixin’s Blog原文: https://suixinblog.cn/2019/02/stack.html 作者: Suixin栈栈(Stack,堆栈)是限制在表的一端进行插入和删除运算的线性表,通常称插入、删除的这一端为栈顶(Top),另一端为栈底(Bottom)。先进后出(FILO)。top= -1时为空栈,top=0只能说明栈中只有一个元素,并且元素...原创 2019-02-28 21:22:29 · 240 阅读 · 0 评论 -
队列的基础知识+Python实现
本文首发于我的个人博客Suixin’s Blog原文: https://suixinblog.cn/2019/02/queue.html 作者: Suixin队列队列(Queue)也是一种运算受限的线性表。它只允许在表的一端进行插入,而在另一端进行删除。允许删除的一端称为队头(front),允许插入的一端称为队尾(rear)。先进先出(FIFO)。循环队列为充分利用向量空间,克服"...原创 2019-03-01 14:10:16 · 285 阅读 · 0 评论 -
2017校招真题--小米--「电话号码分身」
本文首发于我的个人博客Suixin’s Blog原文: https://suixinblog.cn/2019/02/recruit-telephone-number.html 作者: Suixin题目描述继MIUI8推出手机分身功能之后,MIUI9计划推出一个电话号码分身的功能:首先将电话号码中的每个数字加上8取个位,然后使用对应的大写字母代替 (“ZERO”, “ONE”, “TWO...原创 2019-03-01 14:11:03 · 278 阅读 · 0 评论 -
广义表的一些概念
本文首发于我的个人博客Suixin’s Blog原文: https://suixinblog.cn/2019/02/generalized-list.html 作者: Suixin基本概念广义表(Lists,又称列表)是线性表的推广。广义表是n(n⩾0)n(n\geqslant 0)n(n⩾0)个元素a1,a2,a3,…,ana_1,a_2,a_3,…,a_na1,a2,a3,…...原创 2019-03-01 14:11:31 · 1812 阅读 · 0 评论 -
二叉树基础知识+Python实现
本文首发于我的个人博客Suixin’s Blog原文: https://suixinblog.cn/2019/02/binary-tree.html 作者: Suixin基础知识树**树(Tree)**是一种非线性结构,用来模拟具有树状结构性质的数据集合。它是由n(n>0)n(n>0)n(n>0)个有限结点组成一个具有层次关系的集合。树是递归结构,在...原创 2019-03-01 14:14:17 · 912 阅读 · 2 评论 -
[剑指Offer]二叉树的深度
本文首发于我的个人博客Suixin’s Blog原文: https://suixinblog.cn/2019/03/target-offer-binary-tree-depth.html 作者: Suixin题目描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。解题思路在二叉树Python实现中已经写过,这里...原创 2019-03-01 16:39:09 · 101 阅读 · 0 评论 -
[剑指Offer]用两个栈实现队列
本文首发于我的个人博客Suixin’s Blog原文: https://suixinblog.cn/2019/03/target-offer-queue-from-two-stacks.html 作者: Suixin题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。解题思路可以使用两个栈来存储队列,一个stack1用来正序存储该队列(这个栈...原创 2019-03-01 21:23:51 · 119 阅读 · 0 评论 -
[剑指Offer]二维数组中的查找
本文首发于我的个人博客Suixin’s Blog原文: https://suixinblog.cn/2019/02/target-offer-array-find.html 作者: Suixin题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该...原创 2019-02-28 21:17:52 · 100 阅读 · 0 评论