2015阿里秋招在线笔试

2015阿里秋招在线笔试附加题-数据研发工程师

20个选择,有好多行测题,老长一个,读都读晕了。好像好记的几个专业题

1.给出二叉树的先序遍历为ACDEFHGB,中序遍历DECAHFBG。求后序遍历

答案:EDCHBGFA

2.甲,乙玩硬币游戏,分出胜负时停止,出现第一次为正面第二次为反面时甲胜,出现连续两次反面时乙胜,求甲胜的概率

答:假设用A,B表示正反两面。前两次抛硬币可能为AA,AB,BA,BB。概率为1/4,为AB时甲胜,为BB时乙胜。出现AA或BA时继续第三次抛,第三次可能为A或B,概率都为1/2。此时前面两种情况第二次出现的都是A,概率为1/2,故第二次和第三次为AB时甲胜,为AA时继续抛硬币。。。此后甲胜概率都为1/2,以后乙都不可能胜,故乙只能是前两次出现BB的时候胜,概率为1/4,所以甲胜的概率为1-1/4=3/4

3.两趟公家车10分钟一趟,第一辆分钟为2时发车,第二辆分钟为8时发车,求小命上第一辆车的概率 

4.鹰策略和鸽子策略

.。。。。。。

待补充

附加题

第一题:这个就是求最长公共子串


#include <iostream>
#include <string>
#include <vector>
using namespace std;

int LCS(const string &str1,const string &str2)
{  
	int xlen=str1.size();       //横向长度  
	vector<int> tmp(xlen);        //保存矩阵的上一行  
	vector<int> arr(tmp);     //当前行  
	int ylen=str2.size();       //纵向长度  
	int maxele=0;               //矩阵元素中的最大值  
	int pos=0;                  //矩阵元素最大值出现在第几列  
	for(int i=0;i<ylen;i++){  
		string s=str2.substr(i,1);  
		arr.assign(xlen,0);     //数组清0  
		for(int j=0;j<xlen;j++){  
			if(str1.compare(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;  
				}  
			}         
		}  
		tmp.assign(arr.begin(),arr.end());  
	}   
	return maxele;
} 

int main()
{
	string query;
	string text;
	cin>>query>>text;
	cout<<LCS(query,text)<<endl;
	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)
		{
			min=pRoot->data;
		}
		getMax(pRoot->pLeft);
		getMax(pRoot->pRight);
	}
	return max-min;
}
第三题:我的想法是一个IP对应一个独立客户。因此首先找出这两个网站的IP,IP出现多次只留一个,然后再求出这两个网站共有的IP数就是所求答案

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值