网易2018年春招 校招编程题

时间:2018.3.27
申请岗位:测试实习生(网易杭州)-音乐事业部
记录一下自己人生的第一次笔试吧。。自己的水平还是太差了,希望以后自己翻到这篇文章的时候能够有进步。

20道选择题:其中一半都是测试方面的题目,不清楚啊。剩下10道,一半是数据结构(只记得有个算hash散列表了),一半是操作系统(死锁,进程线程之类的)。
2道问答题:第1道题目叙述了充值网易云音乐会员的过程,在客户端,充值类型,时长,支付方式等都有分支,让你画一个流程图(应该是这么叫吧),自己随便画了个。第2题,数据库,从建表开始写语句,好吧,破学校这学期才教,自己之前也没自学过,放弃。
3道编程题:

第1题

题目:一个人一开始朝着北方(N),输入一个次数N,和一个字符串(比如:LRR,表示向左转1次之后,再向右转2次),输出他最后面朝的方向。
思路:定义一个count,如果向右转一次,count++,向左转一次,count–。最后通过count与4模的结果来确定面朝的方向。

package 猪厂笔试;

import java.util.Scanner;

public class example_01 {

    public static void main(String[] args) {
        Scanner in = new Scanner (System.in);
        int N = in.nextInt();
        if(N == 0){
            System.out.println('W');
        }else{
            char[] arr = new char[N];
            String str;
            str = in.next();
            arr = str.toCharArray();

            int count = 0;
            for(int i = 0; i < N; i++){
                if(arr[i] == 'L'){
                    count--;
                }
                if(arr[i] == 'R'){
                    count++;
                }
            }
            count = Math.abs(count);
            char res = 0;
            if(count % 4 == 0){
                res = 'N';
            }
            if(count % 4 == 1){
                res = 'E';
            }
            if(count % 4 == 2){
                res = 'S';
            }
            if(count % 4 == 3){
                res = 'W';
            }
            System.out.println(res);
        }
    }
}

做到最后没有AC有点难受,只过了%90,特殊情况一次也不转也考虑了,实在不知道哪里还有问题。

第2题

题目:在一个平面上有N个矩形,输入一个整数N作为矩形的个数,再输入4个数组,X1[N] X2[N] Y1[N] Y2[N],X1[i] Y1[i] 作为第i个矩形的左下角坐标,X2[i] Y2[i] 作为第i个矩形的右上角坐标。要找出这个平面上矩形重复部分最多的一个区域,最后只需要输出最多重复矩形的个数。
这道题实在没有什么思路,时间也不允许。只能怪自己太菜了。希望大神们给点思路。

第3题

题目:输入2个整数N和K,有2个整数X,Y 满足 X和Y都是小于等于N的,并且X%Y是大于等于K的。求出所有的X和Y的组合,最后只需要输出组合对的个数。
思路:按着逻辑写了个,理所当然,只过了%20,时间复杂度O(N²)满足不了题目的要求。

package 猪厂笔试;

import java.util.Scanner;

public class example_03 {

    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int k = in.nextInt();
        int count = 0;
        for(int x = k; x <=n; x++){
            for(int y = k+1; y <=n; y++){
                if(x < y){
                    count++;
                }else{
                    if(x % y >= k){
                        count++;
                    }
                }
            }
        }
        System.out.println(count);
    }

}

这次笔试就这么结束了,应该是凉凉了吧。。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值