20个挑选,有好多行测题,老长一个,读都读晕了。好像好记的几个专业题。
1.给出二叉树的先序遍历为ACDEFHGB,中序遍历DECAHFBG。求后序遍历。
答案:EDCHBGFA
2.甲,乙玩硬币游戏,分出输赢时中止,呈现第一次为正面第2次为不和时甲胜,呈现接连两次不和时乙胜,求甲胜的概率。
答:假定用A,B表明正反两面。前两次抛硬币也许为AA,AB,BA,BB。概率为1/4,为AB时甲胜,为BB时乙胜。呈现AA或BA时持续第三次抛,第三次也许为A或B,概率都为1/2。此刻前面两种状况第2次呈现的都是A,概率为1/2,故第2次和第三次为AB时甲胜,为AA时持续抛硬币。。。此后甲胜概率都为1/2,今后乙都不也许胜,故乙只能是前两次呈现BB的时分胜,概率为1/4,所以甲胜的概率为1-1/4=3/4。
3.两趟公家车10分钟一趟,第一辆分钟为2时发车,第二辆分钟为8时发车,求小命上第一辆车的概率。
4.鹰战略和鸽子战略
。。。。。。
附加题
第一题:这个即是求最长公共子串。
标题:给定一个query和一个text,均由小写字母构成。要求在text中找出以相同的顺序接连呈现在query中的最长接连字母序列的长度。例如,query为"acbac",text为"acaccbabb",那么text中的"cba"为最长的联络呈现在query中的字母序列,因而,返回成果应该为其长度3。请注意程序功率。
#include
#include
#include
using namespace std;
int LCS(const string &str1,const string &str2)
{
int xlen=(); //横向长度
vector tmp(xlen); //保留矩阵的上一行
vector arr(tmp); //当前行
int ylen=(); //纵向长度
int maxele=0; //矩阵元素中的最大值
int pos=0; //矩阵元素最大值呈现在第几列
for(int i=0;i
string s=tr(i,1);
gn(xlen,0); //数组清0
for(int j=0;j
if(are(j,1,s)==0){
if(j==0)
arr[j]=1;
else
arr[j]=tmp[j-1]+1;
if(arr[j]>maxele){
maxele=arr[j];
pos=j;
}
}
}
gn(n(),());
}
return maxele;
}
int main()
{
string query;
string text;
cin>>query>>text;
cout<
return 0;
}
第二题:这个标题我感受有歧义,是求结点间隔最大的两结点的差值还是指求树中结点最大最小的差值呢?我提交的'是最大最小的差值。
标题:写一个函数,输入一个二叉树,树中每个节点存放了一个整数值,函数返回这棵二叉树中相差最大的两个节点间的差值绝对值。请注意程序功率。
struct TreeNode
{
int data;
TreeNode *pLeft;
TreeNode *pRight;
int nMaxLeft;
int nMaxRight;
};
int max=INT_MIN;
int min=INT_MAX;
int getMax(TreeNode *pRoot)
{
if (pRoot!=NULL)
{
if (pRoot->data>max)
{
max=pRoot->data;
}
if (pRoot->data
{
min=pRoot->data;
}
getMax(pRoot->pLeft);
getMax(pRoot->pRight);
}
return max-min;
}
第三题:我的主意是一个IP对应一个独立客户。因而首先找出这两个网站的IP,IP呈现屡次只留一个,然后再求出这两个网站共有的IP数即是所求答案。
标题:淘宝网()与阿里巴巴网()是阿里巴巴集团下的两个独立网站,假定淘宝网天天的独立访客数载亿以上(以IP计),阿里巴巴网天天的独立访客数在千万以上(以IP计);这两个网站有各自的阅读日志,记载了访客在本网站上的阅读记载,如IP、拜访时间、拜访页面的URL等(注:一个IP在某天也许拜访多个页面);现有这两个网站某天的阅读日志文件各一份,要计算在该天既拜访过淘宝网又拜访过阿里巴巴网站的独立访客数大概是多少,请给出你能想到的计划(可多个)。