蘑菇街2015校招技术类笔试题A卷,回忆版(杭州站)

笔试时间:10月9号 下午

1、一串数据的最大递增序列,输出个数

例如 4,2, 6,3, 1,5,

最大递增序列为, 2,3, 5,输出3,

2、求两个整型数据集合的交集,尽可能少用时间。

假设两个集合为A、B。
算法步骤:
1、对A和B分别进行从小到大排序;
2、从A[0]和B[0]开始,如果A[i]>B[j],则j++,如果A[i]<B[j],则i++,否则找到交集中的一个元素,输出;
3、j++,再循环2;
4、循环2和3直到A和B有一个数组的下标越界。

3、一个文件记录中有50M个URL, 另一个有 500URL个,找出相同的记录

分析:因为有50Murl,假设每个url占用64个字节,那么这个文件的总大小约为3G大小,就算是4G内存的电脑也吃不消。所以需要将这个大文件划分为几个小文件。假设将该文件分为5个小文件,每个文件的大小为600M。
算法步骤描述如下:
1、创建一个hashSet对象,对500个url存入到hashSet对象中。
2、5个文件从编号1到5依次取出一个文件,对该文件中的url进行遍历。
3、对每个ur去hashset中查找该url,如果存在则输出该url,然后从hashset中删除该url(注意需要删除,否则会输出重复数据)。

4、一个数N到1 的最少步骤,如果是 3的倍数除以3,否则可以加2或者减 1。

例如 7

7-1=6;

6/3=2;

2-1=1;

public class NToOne {
    public static void main(String[] args) {
        int n = 20;
        while(n!=1){
            if(n%3 == 0){
                System.out.print(n+"/3=");
                n = n/3;
                System.out.println(n);
            }
            else{ 
                System.out.print(n+"-1=");
                n = n-1;
                System.out.println(n);
            }
        }
    }
}

5、随着来蘑菇街网站(www.mogujie.com)购买衣服的菇凉越来越多,为了让每一位来蘑菇街购物的菇凉有更好的用户体验,我们需要对蘑 菇街网站进行优化,优化的前提是对过程的瓶颈进行分析。那么,一位菇凉在浏览器输入蘑菇街网站的地址按写回车到显示蘑菇街网站内容,请详细描述此时的过 程。

过程如下:
1、向服务器端发送一个http请求,根据请求类型一般分为post和get请求;
2、服务器端中的web服务器,比如tomcat,接收到该请求后,假设用struts2框架,对url进行解析,然后根据struts.xml找到到对应的action,创建action实例来进行相应的业务逻辑处理。(此处只是简略的描述,省去数据库等的操作)。
3、通过httpResponse对象返回result组件。
4、浏览器获取到服务器端返回的http响应数据,根据http中的head部分进行相关配置,然后将html进行显示。
原文地址:https://www.cnblogs.com/hzhtracy/p/4817344.html