
数据结构 算法 逻辑智力题
程江玉
爱编程,爱交流,爱自己,爱生活
展开
-
笔试常见的智力题(附答案)
<br />笔试常见的智力题(附答案)<br />A.逻辑推理<br /> 1、你让工人为你工作7天,给工人的回报是一根金条。金条平分成相连的7段<br />,你必须在每天结束时给他们一段金条,如果只许你两次把金条弄断,你如何给你<br />的工人付费? <br />2、请把一盒蛋糕切成8份,分给8个人,但蛋糕盒里还必须留有一份。<br />3、小明一家过一座桥,过桥时是黑夜,所以必须有灯。现在小明过桥要1秒,<br />小明的弟弟要3秒,小明的爸爸要6秒,小明的妈妈要8秒,小明的爷爷要12秒。原创 2011-03-17 12:21:00 · 1145 阅读 · 0 评论 -
淘宝校园招聘笔试题
1、淘宝新产品研发中心目前有109位店小二,每位小二有一个武侠花名,都出自经典武侠小说,如笑傲江湖等。 假设:花名已知,而且每个花名出处明确,数据存放文本文件(格式自拟); 问题:用JAVA和注释型的伪码写程序,计算每类出处有多少花名。2、已知Q是非空队列,S是空转载 2011-09-28 00:43:26 · 1679 阅读 · 0 评论 -
有道难题的双立方数问题的高速解法
http://www.cnblogs.com/yujiasw/archive/2009/06/05/1497161.html想到了一个新的解法,求20亿以内的双立方数只用1秒。最近在园子里看到了几篇关于这个双立方数的文章,自己也很有兴趣,希望能找到一个好的算法。题转载 2011-10-14 09:32:59 · 1617 阅读 · 0 评论 -
将一个整数的每位数分解并按逆序放入一个数组中(要求用递归算法)
将一个整数的每位数分解并按逆序放入一个数组中(要求用递归算法) /** * @author sunxiao * 将一个整数的每位数分解并按逆序放入一个数组中(要求用递归算法) * */public class Reversal { p转载 2011-10-19 11:11:12 · 8489 阅读 · 0 评论 -
用1、2、2、3、4、5这六个数字,数字排序经典算法
关键字:用1、2、2、3、4、5这六个数字,数字排序经典算法 public class Numarray { /** 用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列, 如:512234、412345等,要求: "4 "不能在第三位, "3 "与 "5 "不能相连. */ public static void main(Stri转载 2011-10-25 13:42:34 · 2905 阅读 · 0 评论 -
用递归的方法判断一个数组是否为递增数组
用递归算法判断数组a[N]是否为一个递增数组。递归的方法,记录当前最大的,并且判断当前的是否比这个还大,大则继续,否则返回false结束:bool fun(int a[], int n){ if(n= =1) return true; if( n= =2 ) return a[n-1] >= a[n-2]; return fun( a,转载 2011-10-26 19:26:31 · 7358 阅读 · 3 评论 -
编程之美连载——连续子数组和的最大值
问题给定一整数数组,求连续的子数组和的最大值,例如: 1, -2, 3, 5, -3, 2 最大值为8 0, -2, 3, 5, -1, 2 最大值为9 分析《编程之美》中给出的算法很精炼,然而解释却比较复杂,如果从“分级组合”的角度去理解要方便很多。 解法设置两个整数变量:cur 和sum,从给定数组中依次取出所有元素,加到cur 上去,当cur转载 2011-11-19 12:35:46 · 2007 阅读 · 0 评论 -
java实现快速排序
public class QuickSort { public static void sort(Comparable[] data,int low,int high) { // 枢纽元,一般以第一个元素为基准进行划分 int i = low; int j = high; if (low // 从数组两端交替地向中间扫描转载 2011-11-25 13:45:44 · 573 阅读 · 0 评论 -
一个很好的字符串全排列算法
package com.visionsky; public class test { private char[] numbers = new char[] { 'a', 'b', 'c','d','e'}; public int n; private String lastResult = ""; private boolean validate(Strin转载 2011-11-06 18:15:30 · 791 阅读 · 0 评论 -
算法面试:精选微软经典的算法面试100题
http://www.osseye.com/?p=375转载 2011-11-11 16:44:12 · 969 阅读 · 1 评论 -
从1-10000中找出2个缺失的数
一个算法题:从1-10000中随机去掉两个数,用最小的时间复杂度找出这个数。这是我今天笔试的一道题,当时没答好!(思路 只想对了一半,哎…………) 先用公式n(n+1)/2算出1-10000的总和 , 用公式n(n+1)(2n+1)/6算出1-10000的平方和,然后扫描那9998个数,每扫到一个就从平方和中减去这个数的平方,扫描一个就从总和中减去这个数。 知道两个数的和和平方转载 2011-12-06 12:39:32 · 2317 阅读 · 1 评论 -
解题笔记(25)——把数组排成最小的数
http://blog.youkuaiyun.com/wuzhekai1985/article/details/6704902 问题描述:输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。例如输入数组{32, 321},则输出这两个能排成的最小数字32132。请给出解决问题的算法,并证明该算法。 思路:先将整数数组转为字符串数组,然后字符串数组进行排序,最后依转载 2012-03-02 14:31:52 · 729 阅读 · 0 评论 -
解题笔记(30)——找含单链表的环入口点(转网上某位高手的解法)
原文出处 http://hi.baidu.com/iwitggwg/blog/index/1 很不错。 问题1:如何判断单链表中是否存在环(即下图中从结点E到结点R组成的环)? 设一快一慢两个指针(Node *fast, *low)同时从链表起点开始遍历,其中快指针每次移动长度为2,慢指针则为1。则若无环,开始遍历之后fast不可能与low重合,且fast转载 2012-03-02 14:35:53 · 934 阅读 · 0 评论 -
百度面试题:在100w个数中找最大的前100个数
在100w个数中找最大的前100个数答案在文章评论部分,请注意查看:)原文网址:http://hi.baidu.com/mianshiti/blog/item/37652f27a3ac4320d5074252.html-----------------转载 2011-09-26 10:36:53 · 9725 阅读 · 0 评论 -
12个一模一样的小球,如何仅称3次找出不同的一个?
12个外表一模一样的小球,其中有一个重量和其他11个不同,怎样只用3次天平将这个小球找出来? 【最佳答案】 分三组:每组四个,第一组编号1-4,第二组5-8,第三组9-12. 第一次称:天平左边放第一组,右边放第二组。 A.第一种转载 2011-09-26 17:39:55 · 2158 阅读 · 1 评论 -
世界上最经典的智力题
<br />1、有两根不均匀分布的香,香烧完的时间是一个小时,你能用什么方法来确定一段15分钟的时间? <br /><br /> 2、一个经理有三个女儿,三个女儿的年龄加起来等于1 <br /><br /> 3,三个女儿的年龄乘起来等于经理自己的年龄,有一个下属已知道经理的年龄,但仍不能确定经理三个女儿的年龄,这时经理说只有一个女儿的头发是黑的,然后这个下属就知道了经理三个女儿的年龄。请问三个女儿的年龄分别是多少?为什么? <br /><br /> 3、有三个人去住旅馆,住三间房,每一间房$10元,于转载 2011-03-18 21:46:00 · 708 阅读 · 0 评论 -
收藏微软面试智力题 (附答案)
收藏微软面试智力题 (附答案)<br /> <br /><br /><br />A.逻辑推理<br /><br /><br /> 1、你让工人为你工作7天,给工人的回报是一根金条。金条平分成相连的7段 <br />,你必须在每天结束时给他们一段金条,如果只许你两次把金条弄断,你如何给你 <br />的工人付费?<br /> <br /> 2、请把一盒蛋糕切成8份,分给8个人,但蛋糕盒里还必须留有一份。 <br /><br /> 3、小明一家过一座桥,过桥时是黑夜,所以必须有灯。现在小明过桥要转载 2011-03-18 20:46:00 · 4662 阅读 · 0 评论 -
几个逻辑智力题
<br />1、诚实国永远说实话,说谎国永远说谎话。现在我要去诚实国,我想先分清他俩谁是诚实国的谁是说谎国的,需要问这两个人。请问应该怎么问?<br />问“你们的国家怎么走”,诚实人会指向城市国,说谎人也会指向诚实国。<br /> <br />2、只能移动一个数,不能移动符号,如何让101-102=1这个式子成立呢 ?<br />101-10的平方=1 把2移到0上面<br />注:打破定势思维 移动没有说非要是左右移动,上下移动也是移动啊转载 2011-03-18 21:33:00 · 794 阅读 · 0 评论 -
数据结构面试大全
<br />(zz)2007-09-28 00:491.判断链表是否存在环型链表问题:判断一个链表是否存在环,例如下面这个链表就存在一个环:<br />例如N1->N2->N3->N4->N5->N2就是一个有环的链表,环的开始结点是N5这里有一个比较简单的解法。设置两个指针p1,p2。每次循环p1向前走一步,p2向前走两步。直到p2碰到NULL指针或者两个指针相等结束循环。如果两个指针相等则说明存在环。struct link { int data; link* next;};bool I转载 2011-03-22 12:11:00 · 805 阅读 · 0 评论 -
老总问的几道题 自己的亲身感受,打破定势思维很重要!
今天上午去kw复试,人力资源都面完后,最后一个是老总面试,问了我几个问题1、职业发展和规划是什么?2、100万个数选出最大的100个,怎么实现?时间复杂度是多少?我答成堆排序,时间复杂度太大 nlogn老总说 一个一个比就行了,每一次比完后看哪个数最大 时间复杂度是100n3、一个美国洗发水商人来北京卖洗发水,他给你30万块钱,让你调查一下北京地区一年洗发水的销售总额,时间最短。抽样调查4、(在第三题的问题上升级)怎样在两分钟就大概知道北京市一年洗发水的销售总额?想了一会没想出来。老总提示了一下:这些洗发水原创 2011-03-23 17:33:00 · 1092 阅读 · 0 评论 -
查找字符串中出现次数最多的字符
/*** 查找字符串中出现次数最多的字符* @author YangHui 2009-10-14**/@SuppressWarnings("unchecked")public class Baidu { private static String words = "iloveyou"; private static String[] strs = {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o转载 2011-05-16 09:58:00 · 3342 阅读 · 1 评论 -
从100万个整数里找出100个最大的数
<br />100万个整数里找出100个最大的数(用哪种算法效率高) <br /><br />以下为可能性最大的答案:<br />部分排序?找出一个支点,把数组分为左右,一直分... <br />可以参考一下STL中nth_element的实现吧。<br />选择第k大数有O(n)的算法,过程衍生自快排<br />呵呵我看懂啦,是个好算法!顶! <br />取前100个数排序,放入链表中.依次取后面的数与100个数的最小数比较,若取到的数比最小数大,则插入链表中,同时挤掉最小的数.这个过程中使用的链表,因为转载 2011-05-16 10:02:00 · 5359 阅读 · 1 评论 -
搜索出字符串中出现次数最多的字符,并统计次数
今天看到一道题,搜索出字符串中出现次数最多的字符,并统计其次数,就自己动手写一下,是用递归来实现的,原理是这样的:每一次都取出字符串STR的第一个字符FS,统计出其在字符串STR中出现的次数N,然后把字符串STR中的FS删除,一直到字符串STR的长度小于N。 1 var str="aaaa13123aass123123121sssssddd123d1231231dddd"; 2 var fs="";//保存出现次数最多的字符 3 var n=0;//保存次数 4 function fineStr(s,n,f转载 2011-03-24 19:56:00 · 4262 阅读 · 1 评论 -
IT面试题本博客收录大量IT面试题及其答案。其中包括微软,谷歌,百度,ibm,腾讯,迅雷等多家IT公司面试题。
<br />IT面试题本博客收录大量IT面试题及其答案。其中包括微软,谷歌,百度,ibm,腾讯,迅雷等多家IT公司面试题。<br />http://hi.baidu.com/mianshiti/blog转载 2011-04-26 16:25:00 · 1539 阅读 · 2 评论 -
现在有一个数组,已知一个数出现的次数超过了一半,请用O(n)的复杂度的算法找出这个数
<br />现在有一个数组,已知一个数出现的次数超过了一半,请用O(n)的复杂度的算法找出这个数。<br /> <br />答案1: <br />创建一个hash_map,key为数组中的数,value为此数出现的次数。遍历一遍数组,用hash_map统计每个数出现的次数,并用两个值存储目前出现次数最多的数和对应出现的次数。 <br />这样可以做到O(n)的时间复杂度和O(n)的空间复杂度,满足题目的要求。 <br />但是没有利用“一个数出现的次数超过了一半”这个特点。也许算法还有提高的空间。 <br转载 2011-04-26 16:22:00 · 3337 阅读 · 0 评论 -
各大软件公司经典算法面试题
2011-04-03 微软有一个整数数组,请求出两两之差绝对值最小的值,记住,只要得出最小值即可,不需要求出是哪两个数。写一个函数,检查字符是否是整数,如果是,返回其整数值。(或者:怎样只用4行代码编写出一个从字符串到长整形的函数?)给出一个函数来输出一个字符转载 2011-09-22 12:26:16 · 1686 阅读 · 0 评论 -
“爱因斯坦的超级问题:谁养鱼?”
http://blog.tianya.cn/blogger/post_read.asp?BlogID=3262781&PostID=30709262转载 2011-09-26 17:46:48 · 1976 阅读 · 0 评论 -
找出整数数组中两个数差值的绝对值最小
原文网址 http://blog.youkuaiyun.com/free2o/article/details/2197336有一个整数数组,请求出两两之差绝对值最小的值,记住,只要得出最小值即可,不需要求出是哪两个数。 下面是一个结发了,利用了stl 的sort 来晚成排序。转载 2011-09-26 11:49:28 · 15545 阅读 · 1 评论 -
HashMap实现原理及源码分析
转载自博客园:https://www.cnblogs.com/chengxiao/p/6059914.html哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而HashMap的实现原理也常常出现在各类的面试题中,重要性可见一斑。本文会对java集合框架中的对应实现HashMap...转载 2018-11-02 14:26:36 · 226 阅读 · 0 评论