一、题目 统计一个数字在排序数组中出现的次数。 二、思路 解法一:遍历数组计数 解法二:考虑到时有序数组,所以采用分查找,找到第一个K 和 最后一个K的位置, 二者相减。 三、代码 解法一: public int G…
分类:剑指offer六十道题解
剑指offer四十一之和为S的连续正数序列
一、题目 题目描述:小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多…
剑指offer五十八之对称的二叉树
一、题目 请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。二、思路 递归做,详见代码 三、代码 /* publi…
剑指offer三十二之把数组排成最小的数
一、题目 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 二、思路 &n…
剑指offer二十三之二叉搜索树的后序遍历序列
一、题目 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 二、思路 1、二叉搜索树又称二叉排序树(Binary Sort T…
剑指offer五十二之正则表达式匹配
一、题目 请实现一个函数用来匹配包括’.’和’*’的正则表达式。模式中的字符’.’表示任意一个字符,而’*’表示它前面的…
剑指offer三十三之丑数
一、题目 如果一个数的因子中,出去1和本身以外,质数因子只包含2、3和5,则把改数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质数因子7。 习惯上我们把1当做是第一个丑数。求按从小到…
剑指offer四十之数组中只出现一次的数字
一、题目 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 二、思路 建一个hashMap,统计各数字出现的次数,然后遍历hashMap,输出出…
剑指offer六十之按之把二叉树打印成多行
一、题目 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。二、思路 队列LinkedList完成层序遍历,用end记录每层结点数目 三、代码 im…
剑指offer十之矩形覆盖
一、题目 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 二、解答思路 如果第一步选择竖方向…
剑指offer五十六之删除链表中重复的结点
一、题目 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->…
剑指offer二十之包含min函数的栈
一、题目 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。 二、思路 用一个栈dataStack保存数据,用另外一个栈minStack保存依次入栈最小的数。每次元素存入minStack的时候,如…