2015阿里巴巴秋招在线笔试题

1.淘宝网(www.taobao.com)与阿里巴巴网(www.alibaba.com)是阿里巴巴集团下的两个独立网站,假设淘宝网每天的独立访客数在亿以上(以IP计),阿里巴巴网每天的独立访客数在千万以上(以IP计);这两个网站有各自的浏览日志,记录了访客在本网站上的浏览记录,如IP、访问时间、访问页面的URL等(注:一个IP在某天可能访问多个页面);现有这两个网站某天的浏览日志文件各一份,要计算在该天既访问过淘宝网又访问过阿里巴巴网站的独立访客数大约是多少,请给出你能想到的方案(可多个)。

关于海量数据处理问题,July在这篇博文进行很好的总结:http://blog.csdn.net/v_july_v/article/details/6279498

而这个问题类似上面网址提到第五个问题。

2.给定一个query和一个text,均由小写字母组成。要求在text中找出以同样的顺序连续出现在query中的最长连续字母序列的长度。例如, query为“acbac”,text为“acaccbabb”,那么text中的“cba”为最长的连续出现在query中的字母序列,因此,返回结果应该为其长度3。请注意程序效率。

这道题目最简单的实现就是进行动态规划。算法思想:

求字符串str1,str2的最长公共子串的长度。

定义二元函数函数f(m,n):分别以str1[m],str2[n]结尾的连续公共子串的长度

而对于f(m+1,n+1) 有以下两种情况

1.str1[m+1] != str2[n+1],则有f(m+1,n+1) =0

2.str1[m+1] == str2[n+1],则有f(m+1,n+1) = f(m,n) + 1

另外f(0,j) = 0(j>=0)    f(j,0) = 0 (j>=0) 时间复杂度为 O(M*N) M,N为两个字符串长度。

上述是基本实现算法,如果想进行优化可以利用后缀树数据结构:时间复杂度O(M+N) http://blog.csdn.net/nomad2/article/details/6404196

http://blog.csdn.net/ljsspace/article/details/6575390

3.写一个函数,输入一个二叉树,树中每个节点存放了一个整数值,函数返回这棵二叉树中相差最大的两个节点间的差值绝对值。请注意程序效率。

数据结构定义:

typedef struct BSTreeNode{
	int num;
	BSTreeNode* leftChild;
	BSTreeNode* rightChild;

}*TreeNode;

我的思路是:非递归的中序遍历树,记录最大最小值,返回两个节点间最大差值。

//非递归的中序遍历,通过遍历数组,用Max记录最大值,用Min记录最小值,求得两者差值
void inorderTraverse(TreeNode root)
{

	stack<TreeNode>sta;
	TreeNode p=root;
	int Max = -2147483648 ;
	int Min = 2147483647;
	while (p||sta.size())
	{
		if (p)
		{
			sta.push(p);
			p=p->leftChild;
		}
		else
		{
			p=sta.top();
			// 更新最大最小值
			if(p->num>Max){
				Max = p->num;
			}
			if(p->num<Min){
				Min = p->num;
			}
			cout<<p->num<<" ";
			sta.pop();
			p=p->rightChild;
		}
	}
	cout<<"输出相差最大两个结点差值:"<<Max-Min<<endl;
}

欢迎大家提供上面题目的思路,感谢!

时间: 2024-09-26 20:12:03

2015阿里巴巴秋招在线笔试题的相关文章

淘宝2015年秋招在线笔试题

1.按照CommonJS规范,在任何模块代码的作用域下内置了以下哪些变量? module context require exports 2.以下关于application cache的说法,哪些是不正确的? ·        对于目标页面而言,可以通过来启用application cache. ·        对于启用了application cache的页面,该页面默认不会被缓存. ·       manifest文件仅在初次访问站点时才会被下载. ·        对于manifest中

2015阿里巴巴前端实习生在线笔试题

Summary 大公司开始招实习生了,我也变成过来人了,品味到之前的酸甜苦辣,除了加油好像也没法说那么多. 因为是你在奋斗,心态这件事是你们在掌握的.但是我们唯一能提供的是我们topview实验室新鲜出炉的面经和笔试. (其实我在想有没应届生春招 - -!) Where 2015阿里巴巴前端实习生在线笔试题

2015年阿里巴巴校招研发工程师在线笔试题汇总

在线笔试题汇总 卷一: 1.下面的函数中哪个是系统调用而不是库函数______? printf scanf fgetc read print_s scan_s 2.某足球队有四名外援,分别来自巴西.荷兰.意大利和美国.他们分别擅长前锋.后卫或守门,其中: ① 美国外援单独擅长守门: ② 意大利外援不擅长前锋: ③ 巴西外援和另外某个外援擅长相同的位置: ④ 荷兰外援擅长的位置和巴西外援不同. 以上条件可以推出巴西外援擅长的位置是______. 前锋 守门 后卫 前锋或守门 后卫或守门 前锋或后卫

2014阿里巴巴WEB前端实习生在线笔试题

2014年3月31日晚,我怀着略微忐忑的心情(第一次在线笔试^_^!!)进行了笔试,阿里巴巴的笔试题共有10道,几乎包含了Web前端开发的各个方面,有程序题.有叙述题,时间非常紧张,只完成了大概6道题.下面把遇到的题目跟大家分享一下! 1. <pre name="code" class="html"><!doctype html> <html> <head> <style type="text/css&

2015微软实习在线笔试题 - Professor Q&#39;s Software

时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Professor Q develops a new software. The software consists of N modules which are numbered from 1 to N. The i-th module will be started up by signal Si. If signal Si is generated multiple times, the i-th module

2014年阿里巴巴在线笔试题-第3大题-公共最长字符串长度

说明 2014年阿里巴巴在线笔试题-第3大题    首先,我没参加这次的阿里巴巴在线笔试题,题目全部是从别人口中描述而来,对于以下的分析,如果有什么不对的地方还望指教.也希望大家能够有更好的办法,希望大家来能不吝赐教. 题目描述 给定一个主字符串和一个匹配字符串,现在问你,找出 "主串中可匹配到的匹配串中子串的最大长度",可能比较绕,举个例子吧 主字符串       abcdefgsdff     记为A 匹配字符串   abefgf               记为B 要求的值就是 

2015.8.29某高级企业的在线笔试题

收集了今年阿里的在线笔试题,贴出来供需要的朋友参考. 1.下面的函数中哪个是系统调用而不是库函数______?printfscanffgetcreadprint_sscan_s 2.某足球队有四名外援,分别来自巴西.荷兰.意大利和美国.他们分别擅长前锋.后卫或守门,其中:① 美国外援单独擅长守门:② 意大利外援不擅长前锋:③ 巴西外援和另外某个外援擅长相同的位置:④ 荷兰外援擅长的位置和巴西外援不同.以上条件可以推出巴西外援擅长的位置是______.前锋守门后卫前锋或守门后卫或守门前锋或后卫 3

2015阿里秋招其中一个算法题(经典)

写一个函数,输入一个二叉树,树中每个节点存放了一个整数值,函数返回这棵二叉树中相差最大的两个节点间的差值绝对值.请注意程序效率 这是2015阿里秋招的一个在线笔试题 实现方法很简单,遍历一遍二叉树,找出最大最小,一相减就可以求出最大的差值 之前在做题的时候居然写递归的方法求值,后面测试了一下,果然结果不对 只要是非递归的的方法遍历都可以很容易找出最大值最小值,效率也比较高,时间复杂度为O(n). 下面是我用非递归从上往下遍历二叉树的方法 用队列容器即可方便实现. 我写的代码: #include

48行代码解一道亚马逊的在线笔试题

这题是我从这里看到的一道亚马逊的在线笔试题,具体规则请前往该文章查看,下面贴出我的解题代码: 其中11,12,13,14分别代表J,Q,K,A; class CardCompare { private int[] cards = new int[] { 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }; public bool CompareCards(int[] cards1, int[] cards2) { return cardsScore(card