剑指Offer
文章平均质量分 75
每一年秋季新学期的开始,新一轮招聘高峰即将来到。这不禁让人想起找工作的情形,人山人海.......尽可能的搜集各个公司的笔试题,为各个学子进入理想的IT公司做一些铺垫。
@SmartSi
Stay Hungry, Stay Foolish
展开
-
[剑指Offer]12.二进制中1的个数
题目输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。思路把一个整数减去1,再和原整数做与运算,会把整数最右边一个1变成0.那么一个整数的二进制表示中有多少个1,就可以进行多次这样的操作。原创 2015-07-20 21:47:11 · 3260 阅读 · 0 评论 -
[剑指Offer]9.用两个栈实现队列
题目用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。思路用栈来模拟队列。我们首先插入一个元素a到stack1中,再压入两个元素bc,此时栈中有元素abc,其中c位于栈顶,而stack2仍然为空。我们试着删除一个元素。按照队列先进先出的原则,我们应该先删除元素a。元素a存放在stack1中且不在栈顶,因此不能直接删除。注意到stack2还未使用,我们把stack1中原创 2015-07-20 16:00:04 · 1630 阅读 · 0 评论 -
[剑指offer]8.重建二叉树
题目输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并输出它的后序遍历序列。原创 2015-07-20 11:35:10 · 1456 阅读 · 0 评论 -
[剑指Offer]6.替换空格
题目请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。思路我们首先想到的就是从前往后扫描,如果空格,就替换为%20,但是这样需要移动空格后的元素。我们还有一种方法,首先遍历一遍字符串,统计出空格的个数,并可以由此计算出替换之后的字符串的长度。每替换一个空格,长度增加2,因此替换之后的字符串长度等原创 2015-07-19 22:34:58 · 1255 阅读 · 0 评论 -
[剑指Offer]5.二维数组中的查找
题目在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。原创 2015-07-19 18:09:32 · 1545 阅读 · 0 评论 -
[LeetCode]239.Sliding Window Maximum
题目Given an array nums, there is a sliding window of size k which is moving from the very left of the array to the very right. You can only see the k numbers in the window. Each time the sliding window原创 2015-07-19 15:49:54 · 2378 阅读 · 0 评论 -
[剑指Offer]2.变态跳台阶
题目一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路用Fib(n)表示青蛙跳上n阶台阶的跳法数,设定Fib(0) = 1;当n = 1 时, 只有一种跳法,即1阶跳,即Fib(1) = 1;当n = 2 时, 有两种跳的方式,一阶跳和二阶跳,即Fib(2) = Fib(1) + Fib(0) = 2;当n = 3 时,有三种跳的方式,原创 2015-07-19 15:19:41 · 1400 阅读 · 0 评论 -
[剑指Offer]40.数组中只出现一次的数字
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。思路我们直到异或的性质:任何一个数字异或他自己都等于0.所以说我们如果从头到尾依次异或每一个数字,那么最终的结果刚好只出现一次的数字,因为成对出现的两次的数字全部在异或中抵消了。这道题中有两个数字只出现一次。这样的话我们得到的结果就是这两个数字的异或结果。因此我们想办法把原数组分成两个子数组,使得每个子原创 2015-04-26 19:34:17 · 2151 阅读 · 0 评论 -
庞果网之高斯公式
【题目】题目详情高斯在上小学时发明了等差数列求和公式:1+2+..+100=5050。现在问题在于给你一个正整数n,问你他可以表示为多少种连续正整数之和?(自身也算)。输入格式:多组数据,每组数据一行,一个正整数n。 0输出格式:每组数据一行,包含一个正整数,表示结果。答题说明输入样例5原创 2014-04-26 10:43:25 · 2305 阅读 · 1 评论 -
剑指Offer之二叉树的深度
【题目】题目描述:输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。输入:第一行输入有n,n表示结点数,结点号从1到n。根结点为1。 n 接下来有n行,每行有两个个整型a和b,表示第i个节点的左右孩子孩子。a为左孩子,b为右孩子。当a为-1时,没有左孩子。当b为-1时,没有右孩子。输出:输出一原创 2013-12-06 22:51:53 · 2122 阅读 · 0 评论 -
剑指Offer之翻转单词顺序
题目描述:JOBDU最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?输入:每原创 2013-11-29 14:53:40 · 2930 阅读 · 0 评论 -
剑指Offer之和为S的连续正数序列
题目描述:小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!输入:输入有多原创 2013-11-29 11:12:18 · 4169 阅读 · 0 评论 -
剑指Offer之和为S的两个数字
题目描述:输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。输入:每个测试案例包括两行:第一行包含一个整数n和k,n表示数组中的元素个数,k表示两数之和。其中1 第二行包含n个整数,每个数组均为int类型。输出:对应每个测试案例,输出两个数,小的先输出。如果找不到,则输出“-1 -1”原创 2013-11-28 21:05:05 · 2411 阅读 · 0 评论 -
庞果网之寻找直方图中面积最大的矩形
题目详情给定直方图,每一小块的height由N个非负整数所确定,每一小块的width都为1,请找出直方图中面积最大的矩形。 如下图所示,直方图中每一块的宽度都是1,每一块给定的高度分别是[2,1,5,6,2,3]: 那么上述直方图中,面积最大的矩形便是下图所示的阴影部分的面积,面积= 10单位。原创 2013-11-25 00:03:39 · 6707 阅读 · 1 评论 -
庞果网之杨辉三角的变形
题目详情 1 1 1 1 1 2 3 2 11 3 6 7 6 3 1以上三角形的数阵,第一行只有一个数1, 以下每行的每个数,是恰好是它上面的数,左上的数和右上数等3个数之和(如果不存在某个数,认为该数就是0)。求第n行第一个偶数出现的位置。如果没有偶数,则输出-1。例如输入3,则输出2,原创 2013-11-24 11:25:34 · 2762 阅读 · 0 评论 -
剑指Offer之合并两个排序的链表
题目描述:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。(hint: 请务必使用链表。)输入:输入可能包含多个测试样例,输入以EOF结束。对于每个测试案例,输入的第一行为两个整数n和m(0下面一行包括n个数t(1输出:对应每个测试案例,若有结果,输出相应的链表。否则,输出N原创 2013-11-23 12:38:36 · 2657 阅读 · 0 评论 -
剑指Offer之连续子数组的最大和
题目描述:HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天JOBDU测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他忽悠原创 2013-11-21 15:29:31 · 2049 阅读 · 0 评论 -
剑指Offer之反转链表
题目描述:输入一个链表,反转链表后,输出链表的所有元素。(hint : 请务必使用链表)输入:输入可能包含多个测试样例,输入以EOF结束。对于每个测试案例,输入的第一行为一个整数n(0输入的第二行包含n个整数t(0输出:对应每个测试案例,以此输出链表反转后的元素,如没有元素则输出NULL。样例输入:原创 2013-11-21 10:17:55 · 3007 阅读 · 0 评论 -
剑指Offer之链表中倒数第k个结点
题目描述:输入一个链表,输出该链表中倒数第k个结点。(hint: 请务必使用链表。)输入:输入可能包含多个测试样例,输入以EOF结束。对于每个测试案例,输入的第一行为两个整数n和k(0输入的第二行包括n个数t(1输出:对应每个测试案例,若有结果,输出相应的查找结果。否则,输出NULL。样例输入:原创 2013-11-20 22:02:58 · 2022 阅读 · 0 评论 -
剑指Offer之包含min函数的栈
题目描述:定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。输入:输入可能包含多个测试样例,输入以EOF结束。对于每个测试案例,输入的第一行为一个整数n(1接下来有n行,每行开始有一个字母Ci。Ci=’s’时,接下有一个数字k,代表将k压入栈。Ci=’o’时,弹出栈顶元素。输出:对应每个测试案例中的原创 2013-11-19 18:48:43 · 2040 阅读 · 0 评论 -
剑指Offer之调整数组顺序使奇数位于偶数前面
#include #include int *number;void SortOddBeforeEven(int *number,int n){ int left = 0,right = n-1; //下标 int oIndex = 0,eIndex = 0; //二分遍历 while(left < right){ //从左边直到第原创 2013-11-16 20:15:28 · 3390 阅读 · 1 评论 -
剑指Offer之打印1到最大的N位数
剑指Offer之打印1到最大的N位数原创 2013-11-11 16:41:23 · 1977 阅读 · 0 评论 -
剑指Offer之数值的整数次方
题目描述:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。输入:输入可能包含多个测试样例。对于每个输入文件,第一行输入一个整数T,表示测试案例的数目,接下来的T行每行输入一个浮点数base和一个整数exponent,两个数中间用一个空格隔开。输出:对应每个测试案例,原创 2013-11-09 12:35:34 · 4378 阅读 · 1 评论 -
剑指Offer之面试位运算总结
(1)基本知识位运算的题目经常出现在面试中。在此总结一下关于位运算的知识点。位运算是把数字用于二进制表示之后,对每一位上的0,1的运算。其实二进制的位运算并不是很难掌握,因为位运算总共只有五种运算:与,或,异或,左移和右移。左移:左移运算符m 比如:00001010 10001010 右移:右移运算符m >> n表示把m右移n位。右移n位的时候最原创 2013-11-05 17:50:41 · 2138 阅读 · 0 评论 -
程序员面试笔试推荐书籍
一、算法与数据结构(1)数据结构(C语言版)该书是一本非常基础的入门级教程,针对一些常见的数据结构有恰到好处的讲解,不会太深,也不会太浅。(2)算法导论大师级的书,几乎是找工作必看,该书对各种常见算法有很深入的讲解和详尽的证明,并对每个算法的起源,动机和求解过程有较多的涉及。(3)程序员实用算法该书强调了常用算法的实现,对于一些常用的编程技巧,书中均转载 2013-11-05 12:53:32 · 3174 阅读 · 0 评论 -
[剑指Offer]3.矩形覆盖
题目描述:我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?输入:输入可能包含多个测试样例,对于每个测试案例,输入包括一个整数n(1输出:对应每个测试案例,输出用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有的方法数。样例输入:4样例输出:5原创 2013-11-05 10:11:03 · 2595 阅读 · 0 评论 -
[剑指Offer]1.跳台阶
题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。输入:输入可能包含多个测试样例,对于每个测试案例,输入包括一个整数n(1输出:对应每个测试案例,输出该青蛙跳上一个n级的台阶总共有多少种跳法。样例输入:5样例输出:8/**************************原创 2013-11-05 09:58:47 · 1841 阅读 · 0 评论 -
[剑指Offer]11.斐波那契数列
题目描述:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。斐波那契数列的定义如下:输入:输入可能包含多个测试样例,对于每个测试案例,输入包括一个整数n(1输出:对应每个测试案例,输出第n项斐波那契数列的值。样例输入:3样例输出:2/***************************原创 2013-11-05 09:35:19 · 2127 阅读 · 0 评论 -
程序员求职之道(《程序员面试笔试宝典》)之求职有用网站及QQ群一览表
求职有用网站及QQ群一览表原创 2013-10-20 21:20:07 · 4075 阅读 · 5 评论 -
庞果网之字符串的完美度
/********************************** 日期:2013-11-03* 作者:SJF0115* 题号: 题目 字符串的完美度* 来源:http://hero.pongo.cn/Question/Details?ID=71&ExamID=69* 结果:AC* 来源:庞果网* 总结:***********************原创 2013-11-03 12:55:17 · 1967 阅读 · 0 评论 -
庞果网之字符串消除
题目详情给定一个字符串,仅由a,b,c 3种小写字母组成。当出现连续两个不同的字母时,你可以用另外一个字母替换它,如有ab或ba连续出现,你把它们替换为字母c;有ac或ca连续出现时,你可以把它们替换为字母b;有bc或cb 连续出现时,你可以把它们替换为字母a。你可以不断反复按照这个规则进行替换,你的目标是使得最终结果所得到的字符串尽原创 2013-11-03 16:05:54 · 1959 阅读 · 0 评论 -
庞果网之数组排序
题目详情本题来自caopengcs,只要你有兴趣,每个人都可以出题(出题入口在主页右侧边栏“贡献题目”->“我要发布”内),以下是题目详情:给定一个包含1-n的数列,我们通过交换任意两个元素给数列重新排序。求最少需要多少次交换,能把数组排成按1-n递增的顺序,其中,数组长度不超过100。例如:原数组是3,2,1, 我们只需要交换1和3就行了,交换次数为1,所以输原创 2013-11-03 16:13:38 · 1916 阅读 · 0 评论 -
庞果网之建立信号基站
题目详情要建立一个信号基站服务n个村庄,这n个村庄用平面上的n个点表示。假设基站建立的位置在(X,Y),则它对某个村庄(x,y)的距离为max{|X – x|, |Y – y|}, 其中| |表示绝对值,我们的目标是让所有村庄到信号基站的距离和最小。基站可以建立在任何实数坐标位置上,也可以与某村庄重合。输入:给定每个村庄的位置x[],y[原创 2013-11-04 21:37:59 · 2316 阅读 · 1 评论 -
[剑指Offer]10.旋转数组的最小数字
题目1386:旋转数组的最小数字题目描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。输入:输入可能包含多原创 2013-11-04 22:24:05 · 2221 阅读 · 0 评论 -
[剑指Offer]7.从尾到头打印链表
九度OJ 题目1511:从尾到头打印链表原创 2013-10-18 21:50:22 · 3730 阅读 · 0 评论 -
九度OJ 题目1510:替换空格
剑指Offer 题目1510:替换空格原创 2013-10-16 10:23:21 · 5630 阅读 · 6 评论 -
剑指Offer之1384:二维数组中的查找
九度OJ 题目1384:二维数组中的查找原创 2013-10-12 11:26:22 · 2787 阅读 · 0 评论