如何用两个堆栈模拟实现一个队列? 如何用两个堆栈模拟实现一个队列? 如果这两个堆栈的容量分别是m和n(m>n),你的方法能保证的队列容量是多少? class Solution { //主要思…
分类:剑指offer
二分查找各种变形,(剑指Offer)面试题38:数字在排序数组中出现的次数
统计一个数字在排序数组中出现的次数。 #include<iostream> #include<math.h> #include <vector> #include <string…
剑指offer五十七之二叉树的下一个结点
一、题目 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 二、思路 结合图,我们可发现分成两大类: 1、有右子树的,那么下个结点…
剑指offer五十六之删除链表中重复的结点
一、题目 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->…
剑指offer五十五之链表中环的入口结点
一、题目 一个链表中包含环,请找出该链表的环的入口结点。 二、思路 方法一: 假设x为环前面的路程(黑色路程),a为环入口到相遇点的路程(蓝色路程,假设顺时针走), c为环的长度(蓝色+橙色路程)。 定义一个快指…
剑指offer五十四之字符流中第一个不重复的字符
一、题目 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符”go”时,第一个只出现一次的字符是”g”。当从该字符流中读出前六个字…
剑指offer五十三之表示数值的字符串
一、题目 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串”+100″,”5e2″,”-123″,”3.14…
剑指offer五十二之正则表达式匹配
一、题目 请实现一个函数用来匹配包括’.’和’*’的正则表达式。模式中的字符’.’表示任意一个字符,而’*’表示它前面的…
剑指offer五十一之构建乘积数组
一、题目 给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]*A[1]*…*A[i-1]*A[i+1]*…*…
剑指offer五十之数组中重复的数字
一、题目 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3…
剑指offer四十九之把字符串转换成整数
一、题目 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0 二、思路 详见代码。 三、代码 public class Solution { publi…
剑指offer四十八之不用加减乘除做加法
一、题目 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 二、思路 1、 采用位运算的方法,分三步: (1)、两个数异或:相当于每一位相加,而不考虑进位 (2)、两个数相与,并…