面试题目
cs064
这个作者很懒,什么都没留下…
展开
-
素数与求解方法
素数指的是一个只能被1和它本身整除的数,它是一个在数论中占重要研究地位的数,是一个数学皇冠上占一个重要位置的数。 素数有多少:高斯猜测,n以内的素数个数大约与n/lnn相当,或者说,当n很大时,两者数量级相同。这就是著名的素数定理。 目前发现的最大的素数:18世纪发现的最大素数是2^31-1,19世纪发现的最大素数是2^127-1,20世纪末人类已知的最大素数是2^85原创 2013-09-15 14:09:05 · 967 阅读 · 0 评论 -
两道关于C++对象内存模型和多态机制的tricky题目
class parent{ public: virtual void output();};void parent::output(){ printf("parent!");}class son : public parent{ public: virtual void output();};void son::output(){ printf("son!")原创 2013-09-17 22:07:28 · 868 阅读 · 0 评论 -
点评、有道、雅虎校招笔面试题
首先推荐一些很好的网站吧:Cracking the coding interview--问题与解答http://www.careercup.com/page?pid=algorithm-interview-questionshttp://ilovers.sinaapp.com/node#Top大众点评1. 给定中国象棋上的2个点,马可以从1个点跳到另一个点,输出所有原创 2013-10-12 22:52:39 · 975 阅读 · 0 评论 -
亚马逊在线笔试题:SpecialSubstring和elimination game
import java.util.ArrayDeque;import java.util.HashMap;public class SpecialSubstring { /* * Question 1 / 2 (Amazon Campus(8): SpecialSubstring) find the longest substring that has at most 3 di原创 2013-10-17 13:35:05 · 1079 阅读 · 0 评论 -
从三个排好序的整数数组中分别选一个元素,使得这三个元素的最大差最小
给定三个从小到大排好序的整数数组A[L],B[M],C[N],从三个数组中分别选一个元素A[i],B[j],C[k],使得max{|A[i] - B[j]|, |A[i] - C[k]|, |B[j] - C[k]|}最小,求这三个元素。贪心算法求解。1. 全局变量curmin保存当前最小的max{|A[i] - B[j]|, |A[i] - C[k]|, |B[j]原创 2013-10-17 09:58:26 · 1679 阅读 · 0 评论 -
平均抛多少次硬币能连抛两次“字”
转自:有道概率题:一个有趣的抛硬币问题问题是:假设有一个硬币,抛出字(背面)和花(正面)的概率都是0.5,而且每次抛硬币与前次结果无关。现在做一个游戏,连续地抛这个硬币,直到连续出现两次字为止,问平均要抛多少次才能结束游戏?注意,一旦连续抛出两个“字”向上游戏就结束了,不用继续抛。解法的关键在于下面这个递推关系 Tn = Tn-1 + 1 + 0.5 * Tn ,也即是有转载 2013-09-18 17:11:49 · 1076 阅读 · 0 评论 -
给定数组A,大小为n,数组元素为1到n的数字,统计哪些数字没有出现,哪些数字出现了多少次
数组统计分析1. 给定数组A,大小为n,数组元素为1到n的数字,不过有的数字出现了多次,有的数字没有出现。请给出算法和程序,统计哪些数字没有出现,哪些数字出现了多少次。能够在O(n)的时间复杂度,O(1)的空间复杂度要求下完成么?分析:如果对时间复杂度没有要求,那么先排序再统计就ok,时间O(n*lgn),空间O(1)。如果对空间没有要求,那么使用位图或者哈原创 2013-09-17 12:49:55 · 3015 阅读 · 0 评论 -
动态规划--电路布线
转自:蓝飞技术部落格电路布线【问题描述】在一块电路板的上、下两端分别有n个接线柱。根据电路设计,要求用导线(i,π(i))将上端接线柱i与下端接线柱π(i)相连,如图所示。其中,π(i),1在制作电路板时,要求将这n条连线分布到若干绝缘层上。在同一层上的连线不相交。你的任务是要确定将哪些连线安排在第一层上,使得该层上有尽可能多的连线。换句话说,就转载 2013-10-02 11:03:41 · 1986 阅读 · 1 评论 -
n位2进制数中有连续k个1出现的概率
问题的关键在于如何避免重复计算,比如说有个n位数,开头是连续的k+1个1,其余位为0,它只能被计算一次,而不是2次。解决的方法是,包含最高位的连续k个1有2^(n-k)种,不包含最高位而包含次高位的连续k个1有2^(n-k-1)种,不包含前2位包含第3位的有。。。这样就不会有重复了//计算n位2进制中连续k个1出现的概率public class BinaryProbability {原创 2013-10-06 22:23:30 · 1494 阅读 · 0 评论 -
小米校招编程题:数组乘积、异形数、朋友圈
这里记录一下方便查找,原文地址:http://blog.csdn.net/hackbuteer1/article/details/8484974二、编程题1、数组乘积(15分)输入:一个长度为n的整数数组input输出:一个长度为n的整数数组result,满足result[i] = input数组中除了input[i]之外所有数的乘积(假设不会溢出)。比如输入:input =转载 2013-09-19 10:53:32 · 1099 阅读 · 0 评论 -
动态规划--矩阵连乘的最优乘法顺序
载自:蓝飞技术部落格最优矩阵连乘积Accepted: 10 Total Submit: 18Time Limit: 1000ms Memony Limit: 32768KBDescription在科学计算中经常要计算矩阵的乘积。矩阵A和B可乘的条件是矩阵A的列数等于矩阵B的行数。若A是一个p×q的矩阵,B是一个q×r的矩阵,则其乘积C=AB是一个p×r的矩阵转载 2013-10-03 10:46:44 · 20510 阅读 · 0 评论 -
给定整形数组A和目标整数t,A相邻元素差绝对值为1,请找到t在A中的位置
题目:有这样一个数组A,大小为n,相邻元素差的绝对值都是1。如:A={4,5,6,5,6,7,8,9,10,9}。 现在,给定A和目标整数t,请找到t在A中的位置。除了依次遍历,还有更好的方法么?已知的解法有这么2种,第一种是最快最好理解的。1. 由题目可知,这个数组中的数是“连续”的,就是说没有跳跃。从i=0开始遍历,t至少在后面abs(A[i]-t)的位置,跳跃到那个位置去判断,直到找原创 2013-09-17 20:40:17 · 1954 阅读 · 1 评论 -
将正整数n划分成k个不同正整数的乘积,输出所有划分方法
//将正整数n划分成k个不同的正整数(不大于max)的乘积,输出所有划分方法,如果不能则输出“无法划分”public class MultiDivision { public static boolean multiDivide(int n, int k, int max, int[] buf){ if(max == 0) return false; if(k==1) i原创 2013-10-02 20:09:50 · 2301 阅读 · 0 评论 -
将一个正整数划分成若干正整数的和,输出每一种划分方法
import java.util.ArrayList;//将一个正整数划分成若干正整数(不超过max)的和,输出每一种划分方法public class IntDivision { //递归对整数n进行划分,划分元素的最大值为max public static ArrayList> divideInt_r(int n, int max){ ArrayList> divisionList原创 2013-10-01 16:35:27 · 1968 阅读 · 0 评论 -
笔试题:循环fork产生的进程数
代码是这样的:void count(int n){ int i=0; for(; i<n; i++){ fork(); putchar('*'); fflush(stdout); }}求参数为N时输出的‘*’的个数。我知道这个肯定是有规律可循的,展开了算很复杂,初步感觉是2^N。N==1时候,有2原创 2013-09-28 11:48:20 · 1052 阅读 · 0 评论