剑指Offer
@SmartSi
Stay Hungry, Stay Foolish
展开
-
单链表的若干问题
(1).试编写算法将带头结点单链表就地逆置,所谓“就地”是指辅助空间为O(1)原创 2013-10-11 10:40:13 · 1296 阅读 · 0 评论 -
2014迅雷校园招聘笔试题
温馨提示:客观题和主观题得分都要超过一定标准,才能获得面试资格,如果一项得分很高,而另外一项得分很低,可能无法获得面试资格。一、单选题(20题,每题2分)1、有变量int i = 0; int a = i++; int b=++a; int c = a+b; 请问表达式 a?b:c 的值是()A、0 B、1 C、2 D、3【解析】 Bint i = 0原创 2013-09-28 13:56:57 · 2394 阅读 · 0 评论 -
九度OJ 题目1510:替换空格
剑指Offer 题目1510:替换空格原创 2013-10-16 10:23:21 · 5678 阅读 · 6 评论 -
C++面试若干问题
c++原创 2013-10-11 21:02:31 · 1671 阅读 · 0 评论 -
HTTP协议返回状态码大全
2014年腾讯招聘题中有这样一道题 浏览器访问某页面,HTTP协议返回状态码为403时表示:(B)A 找不到该页面B 禁止访问C 内部服务器访问D 服务器繁忙处于兴趣,网络搜集了状态返回码大全,属于计算机网络的知识【都说了是搜集的,非原创】HTTP返回状态代码当用户试图通过HTTP或FTP协议访问一台运行主机上的内容时转载 2013-10-28 22:28:06 · 2535 阅读 · 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 · 3412 阅读 · 1 评论 -
庞果网之字符串的完美度
/********************************** 日期:2013-11-03* 作者:SJF0115* 题号: 题目 字符串的完美度* 来源:http://hero.pongo.cn/Question/Details?ID=71&ExamID=69* 结果:AC* 来源:庞果网* 总结:***********************原创 2013-11-03 12:55:17 · 1986 阅读 · 0 评论 -
程序员面试笔试推荐书籍
一、算法与数据结构(1)数据结构(C语言版)该书是一本非常基础的入门级教程,针对一些常见的数据结构有恰到好处的讲解,不会太深,也不会太浅。(2)算法导论大师级的书,几乎是找工作必看,该书对各种常见算法有很深入的讲解和详尽的证明,并对每个算法的起源,动机和求解过程有较多的涉及。(3)程序员实用算法该书强调了常用算法的实现,对于一些常用的编程技巧,书中均转载 2013-11-05 12:53:32 · 3190 阅读 · 0 评论 -
剑指Offer之包含min函数的栈
题目描述:定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。输入:输入可能包含多个测试样例,输入以EOF结束。对于每个测试案例,输入的第一行为一个整数n(1接下来有n行,每行开始有一个字母Ci。Ci=’s’时,接下有一个数字k,代表将k压入栈。Ci=’o’时,弹出栈顶元素。输出:对应每个测试案例中的原创 2013-11-19 18:48:43 · 2059 阅读 · 0 评论 -
剑指Offer之反转链表
题目描述:输入一个链表,反转链表后,输出链表的所有元素。(hint : 请务必使用链表)输入:输入可能包含多个测试样例,输入以EOF结束。对于每个测试案例,输入的第一行为一个整数n(0输入的第二行包含n个整数t(0输出:对应每个测试案例,以此输出链表反转后的元素,如没有元素则输出NULL。样例输入:原创 2013-11-21 10:17:55 · 3078 阅读 · 0 评论 -
剑指Offer之链表中倒数第k个结点
题目描述:输入一个链表,输出该链表中倒数第k个结点。(hint: 请务必使用链表。)输入:输入可能包含多个测试样例,输入以EOF结束。对于每个测试案例,输入的第一行为两个整数n和k(0输入的第二行包括n个数t(1输出:对应每个测试案例,若有结果,输出相应的查找结果。否则,输出NULL。样例输入:原创 2013-11-20 22:02:58 · 2067 阅读 · 0 评论 -
剑指Offer之二进制中1的个数
题目描述:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。输入:输入可能包含多个测试样例。对于每个输入文件,第一行输入一个整数T,代表测试样例的数量。对于每个测试样例输入为一个整数。。n保证是int范围内的一个整数。输出:对应每个测试案例,输出一个整数,代表输入的那个数中1的个数。样例输原创 2013-11-08 12:27:34 · 2136 阅读 · 0 评论 -
剑指Offer之连续子数组的最大和
题目描述:HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天JOBDU测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他忽悠原创 2013-11-21 15:29:31 · 2072 阅读 · 0 评论 -
剑指Offer之合并两个排序的链表
题目描述:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。(hint: 请务必使用链表。)输入:输入可能包含多个测试样例,输入以EOF结束。对于每个测试案例,输入的第一行为两个整数n和m(0下面一行包括n个数t(1输出:对应每个测试案例,若有结果,输出相应的链表。否则,输出N原创 2013-11-23 12:38:36 · 2702 阅读 · 0 评论 -
剑指Offer之面试位运算总结
(1)基本知识位运算的题目经常出现在面试中。在此总结一下关于位运算的知识点。位运算是把数字用于二进制表示之后,对每一位上的0,1的运算。其实二进制的位运算并不是很难掌握,因为位运算总共只有五种运算:与,或,异或,左移和右移。左移:左移运算符m 比如:00001010 10001010 右移:右移运算符m >> n表示把m右移n位。右移n位的时候最原创 2013-11-05 17:50:41 · 2159 阅读 · 0 评论 -
剑指Offer之打印1到最大的N位数
剑指Offer之打印1到最大的N位数原创 2013-11-11 16:41:23 · 1997 阅读 · 0 评论 -
剑指Offer之1384:二维数组中的查找
九度OJ 题目1384:二维数组中的查找原创 2013-10-12 11:26:22 · 2836 阅读 · 0 评论 -
剑指Offer之和为S的两个数字
题目描述:输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。输入:每个测试案例包括两行:第一行包含一个整数n和k,n表示数组中的元素个数,k表示两数之和。其中1 第二行包含n个整数,每个数组均为int类型。输出:对应每个测试案例,输出两个数,小的先输出。如果找不到,则输出“-1 -1”原创 2013-11-28 21:05:05 · 2464 阅读 · 0 评论 -
剑指Offer之翻转单词顺序
题目描述:JOBDU最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?输入:每原创 2013-11-29 14:53:40 · 2971 阅读 · 0 评论 -
剑指Offer之和为S的连续正数序列
题目描述:小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!输入:输入有多原创 2013-11-29 11:12:18 · 4250 阅读 · 0 评论 -
剑指Offer之二叉树的深度
【题目】题目描述:输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。输入:第一行输入有n,n表示结点数,结点号从1到n。根结点为1。 n 接下来有n行,每行有两个个整型a和b,表示第i个节点的左右孩子孩子。a为左孩子,b为右孩子。当a为-1时,没有左孩子。当b为-1时,没有右孩子。输出:输出一原创 2013-12-06 22:51:53 · 2177 阅读 · 0 评论 -
剑指Offer之左旋转字符串(Move!Move!!Move!!!)
题目描述:汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!输入:多组测试数据,每个测试数据包含一个字符序列S和非负整数K。其中S的长度不超过1000。原创 2013-12-02 17:35:46 · 1746 阅读 · 0 评论 -
剑指Offer之数值的整数次方
题目描述:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。输入:输入可能包含多个测试样例。对于每个输入文件,第一行输入一个整数T,表示测试案例的数目,接下来的T行每行输入一个浮点数base和一个整数exponent,两个数中间用一个空格隔开。输出:对应每个测试案例,原创 2013-11-09 12:35:34 · 4424 阅读 · 1 评论 -
剑指Offer之淘宝面试题之小白鼠与毒药解题过程分析
网上流传着一题淘宝面试题,原题如下:我们有很多瓶无色的液体,其中有一瓶是毒药,其它都是蒸馏水,实验的小白鼠喝了以后会在5分钟后死亡,而喝到蒸馏水的小白鼠则一切正常。现在有5只小白鼠,请问一下,我们用这五只小白鼠,5分钟的时间,能够检测多少瓶液体的成分()。A:5, B:6, C:31, D:32。+1只小白鼠首先可以想象只有1只小白鼠的情况,毫无疑问,1只小白鼠五分钟只能判断1瓶液转载 2014-03-18 09:20:33 · 2451 阅读 · 0 评论 -
[历年IT笔试题]2014百度校园招聘-研发工程师笔试题(济南站)
一,简答题(30分)1,当前计算机系统一般会采用层次结构存储数据,请介绍下典型计算机存储系统一般分为哪几个层次,为什么采用分层存储数据能有效提高程序的执行效率?(10分)所谓存储系统的层次结构,就是把各种不同存储容量、存取速度和价格的存储器按层次结构组成多层存储器,并通过管理软件和辅助硬件有机组合成统一的整体,使所存放的程序和数据按层次分布在各种存储器中。目前,在计算机系统中通常采用三转载 2013-10-08 17:46:13 · 1569 阅读 · 0 评论 -
剑指Offer详解之左旋转字符串
(1)暴力移位法这种方法可能是最直观,最容易想出的方法。但这也是最坏的方法。时间复杂度挺高,用这种方法容易超时。这种方法是一位一位的移动实现左旋转操作。【代码】#include #include #include char *str;char* Reverse(char* str,int n){ if(str == NULL || n < 0){原创 2013-12-04 10:32:26 · 1301 阅读 · 0 评论 -
[剑指Offer]40.数组中只出现一次的数字
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。思路我们直到异或的性质:任何一个数字异或他自己都等于0.所以说我们如果从头到尾依次异或每一个数字,那么最终的结果刚好只出现一次的数字,因为成对出现的两次的数字全部在异或中抵消了。这道题中有两个数字只出现一次。这样的话我们得到的结果就是这两个数字的异或结果。因此我们想办法把原数组分成两个子数组,使得每个子原创 2015-04-26 19:34:17 · 2183 阅读 · 0 评论 -
[华为机试练习题]8.汽水瓶
题目描述: 有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?题目类别原创 2015-06-29 09:12:45 · 3352 阅读 · 3 评论 -
[华为机试练习题]2.大数求和
题目二[大数求和]描述: 给定两个非常大的正整数A和B,位数在50至100之间。求C=A+B;题目类别: 字符串 难度: 中级 运行时间限制: 10Sec 内存限制: 128MByte 阶段: 入职前练习 输入: 因为A和B很大,从高位到低位,以字符串的形式输入两行数字A和B。A和B的位数在50至100之间。输出: 以字符串形式,输出一行,表示A和B的和。样例输入原创 2015-06-28 23:32:33 · 4277 阅读 · 0 评论 -
[华为机试练习题]4.简单密码破解
题目描述: 密码是我们生活中非常重要的东东,我们的那么一点不能说的秘密就全靠它了。哇哈哈. 接下来渊子要在密码之上再加一套密码,虽然简单但也安全。假设渊子原来一个BBS上的密码为zvbo9441987,为了方便记忆,他通过一种算法把这个密码变换成YUANzhi1987,这个密码是他的名字和出生年份,怎么忘都忘不了,而且可以明目张胆地放在显眼的地方而不被别人知道真正的密码。他是这么变换的,大家都知道原创 2015-06-28 23:58:35 · 5027 阅读 · 0 评论 -
[华为机试练习题]1.周期串问题
题目一如果一个字符串可以由某个长度为k的字符串重复多次得到,我们说该串以k为周期。例如,abcabcabcabc以3为周期(注意,它也可以6和12为周期,结果取最小周期3)。字符串的长度小于等于100,由调用者保证。接口说明原型: int GetMinPeriod(char *inputstring); 输入参数: char * inputstring:字符串原创 2015-06-28 23:30:59 · 5235 阅读 · 0 评论 -
[华为上机练习题]7.删除字符串中出现次数最少的字符
题目描述: 实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。题目类别: 字符串 难度: 中级 运行时间限制: 10Sec 内存限制: 128MByte 阶段: 入职前练习 输入: 字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于20个字节。输出: 删除字符串中出现原创 2015-06-29 08:51:49 · 3666 阅读 · 3 评论 -
[华为机试练习题]9.坐标移动
题目开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。输入:合法坐标为A(或者D或者W或者S) + 数字(两位以内)坐标之间以;分隔。非法坐标点需要进行丢弃。如AA10; A1A; %; YAD; 等。下面是一个简单的例子 如:A10;S20;W10;D30;X;A1原创 2015-06-29 10:57:17 · 2678 阅读 · 0 评论 -
[华为机试练习题]17.可怕的阶乘
题目题目标题:计算阶乘n!是一件可怕的事情,因为当n并不是很大时,n!将是一个很大的值。例如13! = 6227020800,已经超过了我们常用的unsigned int类型的取值范围。请设计一个程序,使其可以计算100以内的数的阶乘,结果用字符串的形式输出详细描述:接口说明原型:void CalcNN(int n, char *pOut)输入参数:int n 需要计算的阶乘数输出参数:原创 2015-06-30 11:50:56 · 3790 阅读 · 0 评论 -
[华为机试练习题]3.分解字符串
题目按要求分解字符串,输入两个数M,N;M代表输入的M串字符串,N代表输出的每串字符串的位数,不够补0。例如:输入2,8, “abc” ,“123456789”,则输出为“abc00000”,“12345678“,”90000000”代码/*-------------------------------------* 日期:2015-06-18* 作者:SJF0115* 来源:华为原创 2015-06-18 20:21:08 · 4426 阅读 · 0 评论 -
[华为机试练习题]5.IP地址判断有效性
题目判断输入的字符串是不是一个有效的IP地址详细描述:请实现如下接口 boolisIPAddressValid(constchar* pszIPAddr) 输入:pszIPAddr 字符串 输出:true 有效的IP地址,false,无效的IP地址约束输入IP为XXX.XXX.XXX.XXX格式 字符串两端含有空格认为是合法IP 字符串中间含有空格认为是不合法IP 类似于 01.1.1.原创 2015-06-29 08:30:44 · 4259 阅读 · 0 评论 -
[华为机试练习题]6.整数排序
题目描述: 实现输入一组大于等于0的整数,根据从小到大的顺序排序后输出,排序后有连续数时,只输出连续数中最小和最大的两个数。题目类别: 排序 难度: 高级 运行时间限制: 10Sec 内存限制: 128MByte 阶段: 入职前练习 输入: 一组大于等于0的整数,不考虑非法输入,各个整数之间以逗号(“,”)分隔, 输入字符串的总长度小于等于100个字节。输出: 排原创 2015-06-29 08:34:25 · 4268 阅读 · 1 评论 -
[华为机试练习题]10.二叉树遍历
题目描述: 二叉树的前序、中序、后序遍历的定义: 前序遍历:对任一子树,先访问跟,然后遍历其左子树,最后遍历其右子树; 中序遍历:对任一子树,先遍历其左子树,然后访问根,最后遍历其右子树; 后序遍历:对任一子树,先遍历其左子树,然后遍历其右子树,最后访问根。 给定一棵二叉树的前序遍历和中序遍历,求其后序遍历(提示:给定前序遍历与中序遍历能够唯一确定后序遍历)。题目类别: 树 难度原创 2015-06-29 11:33:55 · 4519 阅读 · 0 评论 -
[华为机试练习题]12.整型字符串排序
题目给定字符串内有很多正整数,要求对这些正整数进行排序,然后返回排序后指定位置的正整数 排序要求:按照每个正整数的后三位数字组成的整数进行从小到大排序 1)如果不足三位,则按照实际位数组成的整数进行比较 2)如果相等,则按照输入字符串中的原始顺序排序 说明(以下内容考生无须检查,调用者保证): 1) 字符串以’\0’结尾,仅包含数字、空格 2) 字符串内正整数之间以单个空格分隔,字符串首尾没原创 2015-06-29 16:31:04 · 5132 阅读 · 2 评论 -
[华为机试练习题]11.最大递减数
题目给出一个非负整数,找到这个非负整数中包含的最大递减数。一个数字的递减数是指相邻的数位从大到小排列的数字。如: 95345323,递减数有:953,95,53,53,532,32, 那么最大的递减数为953。如果输入的数字为负数,返回-1。原创 2015-06-29 13:53:20 · 2597 阅读 · 0 评论