
面试题
DQZQ
这个作者很懒,什么都没留下…
展开
-
烽火2014一个笔试题
class Base{ public void func1(){ System.out.println("Base::func1"); } public static void funcstatic(){ System.out.println("Base::func1_static"); } }class Derived extends Base{ public void原创 2013-10-26 16:21:48 · 515 阅读 · 0 评论 -
阿里巴巴2013/5/19第十八题的感想
http://blog.youkuaiyun.com/knuth_tang/article/details/8971257题目:宿舍内有五个童鞋一起玩对战游戏,每场比赛有一些人作为红方,另外一些人作为蓝方,请问至少需要多少场比赛才能使得任意两个人之间有一场红方对蓝方和一场蓝方对红方的比赛,请写出思路。分析:更具一般性而言,舍有n个人玩对战游戏好喽,要使得任意两个人之间都发生过两种关系(虽然不雅,这转载 2013-09-12 16:10:29 · 1573 阅读 · 0 评论 -
题目: 一个骰子,6面,1个面是 1, 2个面是2, 3个面是3, 问平均掷多少次能使1、2、3都至少出现一次。
http://blog.youkuaiyun.com/wongson/article/details/7974587题目:一个骰子,6面,1个面是 1, 2个面是2, 3个面是3,问平均掷多少次能使1、2、3都至少出现一次。解:(没学过《组合数学》的请略过)设P(N=n)表示第n次(n>2)抛出后1,2,3都出现的概率,问题要求n的期望E(N=n).掷1的概率p=1/6,掷2的概率q=1/转载 2013-09-12 11:46:25 · 481 阅读 · 0 评论 -
面试题学习
参考:http://blog.youkuaiyun.com/v_july_v/article/details/7974418一:8月20日,金山面试,题目如下: 数据库1中存放着a类数据,数据库2中存放着以天为单位划分的表30张(比如table_20110909,table_20110910,table_20110911),总共是一个月的数据。表1中的a类数据中有一个字段userid来唯一判别用原创 2013-08-05 16:21:23 · 472 阅读 · 1 评论 -
机器学习算法--聚类
K means 算法:是一个简单的聚类算法,把n的对象根据他们的属性分为k个分割,k 。 算法的核心就是要优化失真函数J,使其收敛到局部最小值但不是全局最小值。层次方法自底向上的方法,一开始将每个对 象作为单独的一个类,然后相继地合并相近的类,直到所有的类合并为一个(层次的最上层),或者达到一个终止条件为止。分裂的方法,也称为自顶向下的方法, 一开始将所有的对象原创 2013-09-02 17:06:41 · 636 阅读 · 0 评论 -
机器学习算法的学习--分类
一:ID3算法的学习http://www.cnblogs.com/dztgc/archive/2013/04/22/3036529.html决策树的ID3算法:基本的ID3 算法通过自顶向下构造决策树来进行学习。构造过程是从“哪一个属性将在树的根结点被测试?”这个问题开始的。为了回答这个问题,使用统计测试来确定每一个实例属性单独分类训练样例的能力。(1)分类能力最好的属原创 2013-09-02 15:42:27 · 383 阅读 · 0 评论 -
有一台机器,上面有m个储存空间。然后有n个请求
http://blog.163.com/shi_shun/blog/static/23707849201041091657539/有一台机器,上面有m个储存空间。然后有n个请求,第i个请求计算时需要占R[i]个空间,储存计算结果则需要占据O[i]个空间(其中 O[i]比方说,m=14,n=2,R[1]=10,O[1]=5,R[2]=8,O[2]=6。在这个例子中,我们可以先运行第一个任转载 2013-09-09 11:50:56 · 596 阅读 · 0 评论 -
关联规则--Apriori算法详解
格式有些乱,还是去原文看吧!http://www.csdn123.com/html/blogs/20130609/21029.htm转载请注明来源:唐磊的个人博客《关联规则-Apriori算法详解(附python版源码)》Apriori algorithm是关联规则里一项基本算法。是由Rakesh Agrawal和Ramakrishnan Srikant两位在1994年提出的布转载 2013-09-02 21:57:03 · 550 阅读 · 0 评论 -
第三十七 n个长为m+1的字符串。 如果某个字符串的最后m 个字符与某个字符串的前m 个字符匹配
有n 个长为m+1 的字符串, 如果某个字符串的最后m 个字符与某个字符串的前m 个字符匹配,则两个字符串可以联接, 问这n 个字符串最多可以连成一个多长的字符串,如果出现循环,则返回错误http://www.haogongju.net/art/1670380<?php 2 #有n个字符串,每个数组长度m+1,如果数组的后m个元素和另一个数组的前m个元素相同,则两个数组可以相连转载 2013-09-07 20:47:03 · 363 阅读 · 0 评论 -
【100题】第三十六 比赛淘汰问题(谷歌笔试)
http://blog.youkuaiyun.com/tianshuai1111/article/details/7490902一,题目:(谷歌笔试) n支队伍比赛,分别编号为0,1,2……n-1,已知它们之间的实力对比关系,存储在一个二维数组w[n][n]中,w[i][j] 的值代表编号为i,j的队伍中更强的一支。所以w[i][j]=i 或者j,现在给出它们的出场顺序,并存储在转载 2013-09-07 20:14:32 · 326 阅读 · 0 评论 -
二叉树 前序 中序 后序 非递归遍历方式
代码如下:struct Node{ Node(int _data):data(_data),left(NULL),right(NULL){} int data; Node* left; Node* right;};void initTree(Node** head){ *head=new Node(1); (*head)->left=new Node(2); (*h原创 2013-09-08 10:28:32 · 419 阅读 · 0 评论 -
如何找数的第一个bit为1的位置
一:查表法:该方法一般在掩码长度为8位时比较常见,即定义一个数组X,数组长度为2 的n次方,n为掩码的长度。如掩码为8位时可定义一个256个单元的数组,数组第m个单元初始化为但掩码值为m时其第一个为1位的位置,比如m= 0xF4,则11110100b,其第一个为一的位在bit2上,则X[m]=2,同理但X[0xF5]=0,当然X[0x00]=-1。有了这张表,那么查找比特1位置的函数实现很简单原创 2013-09-02 11:07:57 · 741 阅读 · 0 评论 -
有一串首尾相连的珠子,共有m个
有一串首尾相连的珠子,共有m个,每一个珠子有一种颜色,并且颜色的总数不超过n(n原文:http://www.cppblog.com/izualzhy/archive/2012/10/03/168430.html依稀记得见到此题是在校园招聘的笔试题目上,也记得当时的感觉是一头雾水,完全不懂这个题目在干什么。时间如流水,转眼已工作了一年,工作也阴差阳错的换了一个。偶然间看到这个题目转载 2013-09-07 22:16:48 · 404 阅读 · 0 评论 -
网易有道笔试:求连通图的割点(关节点)
http://blog.youkuaiyun.com/cxllyg/article/details/7610265题目:求一个连通图的割点,割点的定义是,如果除去此节点和与其相关的边,图不再连通,描述算法。分析:1. 最简单也是最直接的算法是,删除一个点然后判断连通性,如果删除此点,图不再连通,则此点是割点,反之不是割点(图的连通性一般通过深搜来判定,是否能一次搜索完 全部顶点);2. 通过深转载 2013-09-07 21:57:26 · 412 阅读 · 0 评论 -
已知前序和中序找后序序列
string post="";void proc(string pre,string ino,int left,int right,int left2,int right2){ int lc=0; if(left>right||left2>right2) return ; for(int i=left2;i<=right2;++i){ if(ino[i]==原创 2013-09-14 11:08:27 · 344 阅读 · 0 评论 -
中缀表达式的计算
#include #include#include#include#include#include #include#include#define INT_MAX (1<<30)using namespace std;int get(char ch){ switch(ch){ case '+': case '-':return 1; case '*'原创 2013-09-14 15:37:58 · 634 阅读 · 0 评论 -
2013 腾讯的一道笔试题,基类,派生类,派生类成员顺序问题
#include#include#include#include#includeusing namespace std;class test{public: test(){cout<<"test"<<endl;}};class Base{public: Base(){cout<<"base"<<endl;}};class test2:public Base{pu原创 2013-09-23 09:27:48 · 230 阅读 · 0 评论 -
tarjan lca最小公共祖先算法
原文:http://kmplayer.iteye.com/blog/6045181,并查集+dfs对整个树进行深度优先遍历,并在遍历的过程中不断地把一些目前可能查询到的并且结果相同的节点用并查集合并.2,分类,使每个结点都落到某个类中,到时候只要执行集合查询,就可以知道结点的LCA了。对于一个结点u.类别有:以u为根的子树、除类一以外的以f(u)为根的子树、除前两类以外转载 2013-09-20 16:16:08 · 276 阅读 · 0 评论 -
B-树和B+树的应用:数据搜索和数据库索引
B-树1 .B-树定义B-树是一种平衡的多路查找树,它在文件系统中很有用。定义:一棵m 阶的B-树,或者为空树,或为满足下列特性的m 叉树:⑴树中每个结点至多有m 棵子树;⑵若根结点不是叶子结点,则至少有两棵子树;⑶除根结点之外的所有非终端结点至少有[m/2] 棵子树;⑷所有的非终端结点中包含以下信息数据: (n,A0,K1,A1,K2,…,Kn,An)转载 2013-09-21 20:11:17 · 249 阅读 · 0 评论 -
C++面试题关于构造释放
情景一:class A{public: A(string s):str(s){ cout<<"+"<<str<<endl;} ~A(){cout<<"-"<<str<<endl;}private: string str;};void bar1(){ A a("hel"); A* aa=new A("wor");}int main() {bar1();b原创 2013-09-17 22:49:31 · 235 阅读 · 0 评论 -
华为编程 复数求均值
题目描述由实部和虚部组成,形如(a,bi)这样的数,称为复数。通信系统中,通常用32bit数来表示复数(高16bit表示实部,低16bit表示虚部),如整数524295(16进制为0x00080007)所代表的复数,实部为0x0008,虚部为0x0007。有别于实数运算,复数加、减、乘、除运算定义如下:复数加公式:(a,bi) + (c,di) = (a + c),(b + d)i原创 2013-09-16 23:09:33 · 612 阅读 · 0 评论 -
连连看-判断两个图案是否可以消去
题目 C:连连看-判断两个图案是否可以消去时间限制: 10 Sec 内存限制:128 MB提交: 23 解决: 3[提交][状态][讨论版]题目描述连连看,你不会?那就out了!给定一个连连看棋盘,棋盘上每个点有各种图案(用非0数字表示),输入棋盘上的任意两个坐标,判断这两个坐标对应的图案是否可以消除,消除的条件是图案相同且图案间连线的转角数不得超过2。原创 2013-09-16 23:55:22 · 657 阅读 · 0 评论 -
程序员面试题精选100题-n个骰子的点数
第一种解法:递归:int n=7;void sump(int cur,int val,int tsum,vector& vec){ if(cur==1){ vec[val+tsum-n]++;//第一个骰子加上剩下的筛子的取值和就是该位置上的和了。 }else{ for(int i=1;i<=6;++i){ int sum=val+tsum;原创 2013-09-16 11:35:04 · 370 阅读 · 0 评论 -
2013华为笔试上机题 等式变换
题目:等式变换描述: 输入一个正整数X,在下面的等式左边的数字之间添加+号或者-号,使得等式成立。1 2 3 4 5 6 7 8 9 = X比如:12-34+5-67+89 = 51+23+4-5+6-7-8-9 = 5请编写程序,统计满足该输入整数的所有等式的个数。采用递归方法:#include#include#include原创 2013-09-16 09:22:40 · 496 阅读 · 0 评论 -
2012 华为编程大赛 语法分析
要求实现函数: void analysis(char *str,int *num)【输入】 char *str,待分析字符串 【输出】 int num,匹配的组合个数【返回】 无注:输入字符串中关键字以空格隔开,"if"、"("、")"、"case"等均表示关键字,从左向右,找到匹配的组合即可,组合一定是相互分离,不会嵌套,不会有交叉情况出现。1) 输入原创 2013-09-14 16:46:22 · 347 阅读 · 0 评论 -
求约瑟夫环的代码
using namespace std;int proc(int n,int m){ list vec; for(int i=1;i<=n;++i) vec.push_back(i); list::iterator it=vec.begin(); list::iterator it2; while(1){ int t=m-1; while(t--原创 2013-09-14 14:01:57 · 367 阅读 · 0 评论 -
求最长递减子序列
先将一个字符串拷贝到另一个字符串内,然后排序。在和原串找LCS。本题来源创新工场。它给的结果为95432,而本代码跑出来的结果是94432.都满足递减条件。但是题的答案是严格递减的。这里应该怎么考虑呢?void printlcs(string s1,string s2,vector > b){ vector path; int i=b.size()-1; int j=b[原创 2013-09-14 13:11:54 · 349 阅读 · 0 评论 -
马戏团里有个叠罗汉的表演,为了便于美观,下面的人身高和体重都要大于上面的人。现在知道n个演员的身高和体重,请问最多能叠多少层?
思路一(来源于网上):http://blog.youkuaiyun.com/huangxy10/article/details/8026464首先生成一个有向图,用连接矩阵的方式来表示。map[i][j]==1表示第i个人上面可以放第j个人。然后开始对每个人进行深度搜索,这个图中不可能有环。所以对于每个人来说就是一棵树,搜索树的高度。再找出最高的高度即是答案。[cpp]原创 2013-09-13 16:51:39 · 569 阅读 · 0 评论 -
有1分,2分,5分,10分四种硬币,每种硬币数量无限,给定n分钱,求有多少种组合可以组合成n分钱?
一:利用母函数:using namespace std;int proc(int n){ vector c1(n+1),c2(n+1); c1[0]=1;c1[1]=1;c1[2]=1;c1[5]=1;c1[10]=1; for(int k=2;k<=n;++k){ for(int i=0;i<=n;++i) for(int j=0;i+j<=n;j+=k)原创 2013-09-13 16:25:12 · 844 阅读 · 0 评论 -
百度面试题,一个int 数组,里面据无任何限制要求出所有这样的a[i],其左边的数都小于等于它,右边的数都大等
一个int 数组,里面据无任何限制要求出所有这样的a[i],其左边的数都小于等于它,右边的数都大等。能否只用一个额外组和少量其空间实现Sort the array to another array, compare it with original all a[i] = b[are answers.Sort the array to another array, compare it wi原创 2013-09-08 18:16:10 · 324 阅读 · 0 评论 -
雅虎笔试:最大流
对于一个整数矩阵,存在一种运算,对矩阵中任意元素加一时,需要其相邻(上下左右)某一个元素也加一,现给出一正数矩阵,判断其是否能够由一个全零矩阵经过上述运算得到。设棋盘是黑白相间的,如果矩阵式1 2 3 4那么白点就是1,4,黑点就是2,3每个黑点只跟周围相邻的白点联通,白点也只跟周围相邻的黑点联通,有一个共同的源S连到黑点,每条边的容量就是黑点上面的转载 2013-09-08 17:25:47 · 476 阅读 · 0 评论 -
百度面试题:有一个很大很大的输入流,大到没有存储器可以将其存储下来,
有一个很大很大的输入流,大到没有存储器可以将其存储下来,而且只输入一次,如何从这个输入流中随机取得m 个记录。ANSWERThat is, keep total number count N. If NFor N>m, generate a random number R=rand(N) in [0, N), replace a[R] with new number if R fa原创 2013-09-07 21:27:08 · 378 阅读 · 0 评论 -
求一个字符串连续出现次数最多的子串
基本算法描述: 给出一个字符串abababa 1.穷举出所有的后缀子串 substrs[0] = abababa; substrs[1] = bababa; substrs[2] = ababa; substrs[3] = baba; substrs[4] = aba;原创 2013-08-04 10:49:37 · 236 阅读 · 0 评论 -
杨氏矩阵的相关问题
来自http://blog.youkuaiyun.com/v_july_v/article/details/7085669在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 例如下面的二维数组就是每行、每列都递增排序。如果在这个数组中查找数字6,则返回true;如果查找数字5,原创 2013-08-01 18:20:27 · 291 阅读 · 0 评论 -
strstr,
1,strstr函数自己最开始的思路,主要有两个缺陷,缺陷2修改了。//strstr函数bool find_sub(const char* str,const char* sub){ if(NULL==str) return false; if(NULL==sub) return true; const char* t=sub; //下面两个不应该调用库函数 size原创 2013-08-02 10:13:38 · 263 阅读 · 0 评论 -
银行家算法的学习
原文链接:http://curely.blog.51cto.com/1627940/803342我理解的request和need的区别,request是某个时刻进程需要的资源,而need则是整个进程运行过程中还所需要的资源目的:避免死锁的产生。算法思想: 1、假分配检测:Request Request转载 2013-08-01 10:52:25 · 508 阅读 · 0 评论 -
说有一台机器,上面有m个储存空间。然后有n个请求(google的一道题解)
问题描述:说有一台机器,上面有m个储存空间。然后有n个请求,第i个请求计算时需要占R[i]个空间,储存计算结果则需要占据O[i]个空间(其中 O[i] 题解:假设可以满足所有请求,并且处理请求的顺序是:r1,r2,……r(n-1),r(n),那么存储完所有的请求结果后,剩余的存储空间为L= m-∑O[i]。如果假设成立,必须满足:针对请求r(n),一定有L+O[r(n)]>=R原创 2013-08-01 11:52:45 · 334 阅读 · 0 评论 -
循环递增数组的二分查找
代码:#includeusing namespace std;int find(int* arr,int len,int key){ int l=0,h=len-1,mid; while(l<h){ mid=(l+h)/2; if(arr[mid]==key){ return mid; }else原创 2013-06-02 18:59:05 · 228 阅读 · 0 评论 -
程序员面试题精选100题(07)-翻转句子中单词的顺序[算法]
题目链接:http://zhedahht.blog.163.com/blog/static/254111742007289205219/一种变形,我的代码:#include #include #include#include#include#include#includeusing namespace std;int gcd(int a,int b) {原创 2013-05-31 21:39:33 · 223 阅读 · 0 评论 -
程序员面试题精选100题(06)-二元查找树的后序遍历结果[数据结构]
原文链接:http://zhedahht.blog.163.com/blog/static/25411174200725319627/我的实验代码:#include #include #include#include#include#includeusing namespace std;bool isPostSeq(int* data,int len){ if(NU转载 2013-05-31 20:51:15 · 189 阅读 · 0 评论