摘要:
第一道:据说是google面试题有N个整数,求其中任意N-1个数的乘积中的最大值。例如-4,-1,2的最大值就是4;最好给出复杂度分析。这道题我没有找到标准答案,大家可以把自己的想法贴出来讨论一下。第二道:编程练习题 POJ1163 The Triangle 73 88 1 0 2 7 4 4 4 5 2 6 5The above figure shows a number triangle. Write a program that calculates the highest sum of numbers passed on a route that starts at the top a 阅读全文
摘要:
教授选出两个从2到9的数(可以相同),把它们的和告诉学生甲,把它们的积告诉学生乙,让他们轮流猜这两个数 甲说:“我猜不出” 乙说:“我猜不出” 甲说:“我猜到了” 乙说:“我也猜到了” 问这两个数是多少-----------------------------------------------------------------------------------------参考答案: 设两个数为n1,n2,n1 =n2,甲听到的数为n=n1+n2,乙听到的数为m=n1*n2 证明n1=3,n2=4是唯一解 证明:要证以上命题为真,不妨先证n=7 1)必要性: i) n 阅读全文
摘要:
设计一个算法把一个含有N个元素的数组循环右移K位,要求时间复杂度为O(N),且只允许使用两个附加变量。------------------------------------------------------------------------------------------------------答案:每个元素右移N位后都会回到自己的位置上。因此,如果KN,右移K-N之后的数组序列跟右移K位的结果是一样的,所以右移K位即,右移K‘=K%N位。代码如下RightShift(int* arr,int N,int K){K%=N;while(K--){int t=arr[N-1];for( 阅读全文
摘要:
初始时数123显示在计算机屏幕上。每一分钟计算机都给屏幕上的数加上102,计算机专家Bill可任意改变计算机屏幕上所显示数的各位数字的前后顺序,试问Bill能否永远不让屏幕上出现有4位数字的数?-------------------------------------------------------------------------------------------------答案:解法1:Bill能够防止屏幕上出现4位数,他的操作方法如下:先将123改成312,然后静观计算机屏幕上依次出现414、516、618、720。此时他将720改成027。再静观计算机屏幕上出现129、231。 阅读全文
摘要:
有1000瓶水,其中有一瓶有毒,小白鼠只要尝一点带毒的水20小时后就会死亡,现在用十只小白鼠来验毒,要求在24小时内找到混有毒药的那瓶水,怎么做?--------------------------------------------------------------------------------------------------------------------------------------------答案:给1000个瓶分别标上如下标签(10位长度):0000000001 (第1瓶)0000000010 (第2瓶)0000000011 (第3瓶)......1111101 阅读全文
摘要:
农夫John有三个装牛奶的桶,容量分别为A、B、C,数字A、B、C是1到15的整数,开始时A桶、B桶为空,C桶装满牛奶。农夫John装牛奶从一个桶倒向另一个桶,直到该桶为空或另一个桶满为止,一个倒牛奶的操作一旦开始也会结束,写一个程序帮助农夫John找出从上述状态开始在三个桶之间倒牛奶,桶C中可能剩余的牛奶的体积。运行举例:enter A B C:8 9 10 answer:1 2 8 9 10----------------------------------------------------------------------------------------------------- 阅读全文