剑指Offer-把数组排成最小的数 发表于 2017-12-21 | 阅读次数 把数组排成最小的数 题目 输入一个正整数数组,把数组里所有数字拼接起来排成一个数, 打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。思路 s1+s2比较s2+s1 先将整型数组转换成String数组,然后将String数组排 ... 阅读全文 »
剑指Offer-孩子们的游戏(圆圈中剩下的最后的数) 发表于 2017-12-21 | 阅读次数 孩子们的游戏 题目 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。 HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。 然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可 ... 阅读全文 »
剑指Offer-镜像二叉树 发表于 2017-12-21 | 阅读次数 镜像二叉树 题目 操作给定的二叉树,将其变换为源二叉树的镜像。 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5思路 递归代码 public class Mirror ... 阅读全文 »
剑指Offer-树的子结构 发表于 2017-12-21 | 阅读次数 树的子结构 题目 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 思路先找同一个根节点,然后进行匹配ß 两次递归思路 首先找到相同的根节点,然后递归是否相同代码 public class HasSubTree { public class Tre ... 阅读全文 »
剑指Offer-和为S正数序列 发表于 2017-12-20 | 阅读次数 和为S正数序列 题目 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。 但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。 没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你 ... 阅读全文 »
剑指Offer-和为S的两个数字 发表于 2017-12-20 | 阅读次数 和为S的两个数字 题目 输入一个递增排序的数组和一个数字S,在数组中查找两个数, 是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 对应每个测试案例,输出两个数,小的先输出。思路 两个数字差最大的时候就是乘机最小的时候,所以第一个正好和是S的时候是符合条件的时候 双指针。代 ... 阅读全文 »
剑指Offer-二叉树的下一个节点 发表于 2017-12-20 | 阅读次数 二叉树的下一个节点 题目 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。 注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。思路 ![](https://i.imgur.com/xUJ1nph.png) 结合图,我们可发现分成两大类:1、有右子树的,那么 下个 ... 阅读全文 »
剑指Offer-重建二叉树 发表于 2017-12-20 | 阅读次数 重建二叉树 题目 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。 假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6}, 则重建二叉树并返回。思路 /** * 重建二叉树 * 输入某 ... 阅读全文 »
剑指Offer-矩形覆盖 发表于 2017-12-20 | 阅读次数 矩形覆盖 题目 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖 一个2*n的大矩形,总共有多少种方法?思路 画图找规律,fibonaci代码 public class RectCover { public int RectCover(int tar ... 阅读全文 »
剑指Offer-翻转单词顺序 发表于 2017-12-20 | 阅读次数 翻转单词顺序 题目 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本上。 同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例 如,“student. a am I”。后来才意识到, 这家伙原来把句子单词的顺序翻转了,正确的句子应该是“ ... 阅读全文 »