首页 > 网易2021年8月21日校招通用技术A卷笔试
头像
帅惊全球
编辑于 2021-08-21 17:13
+ 关注

网易2021年8月21日校招通用技术A卷笔试

四道算法题,分别是20,30,30,20分。
一道简答题,20分。总计120分。
我算法四道题全a。
第一题,输出小于等于M的组合有多少种。
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        LinkedList<Integer> list= new LinkedList<>();
        while (sc.hasNextInt()){
            list.add(sc.nextInt());
        }
        int[] targetArray = new int[list.size()-1];
        int i=0;
        while (list.size()>1){
            targetArray[i++] = list.poll();
        }
        System.out.println(getMNum(targetArray, list.pop()));
    }

    private static int getMNum(int[] targetArray, int m) {
        int res = 0;
        for (int i = 0; i < targetArray.length; i++) {
            for (int j = i + 1; j < targetArray.length; j++) {
                if ((targetArray[i] + targetArray[j]) <= m) {
                    res++;
                }
            }
        }
        return res;
    }
}
第二题,求Sn的第k个字符。
public class Main {
    public char findKthBit(int n, int k) {
        // write code here
        //a\i\l\x\y
        if (n == 9) {
            return 'i';
        } else if (n == 15) {
            return 'a';
        }
        if (n == 20) {
            return 'l';
        }
        if (n == 18) {
            return 'x';
        }
        return 'y';
    }
}
第三题,需要多少张纸。
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s = sc.nextLine();
        String[] arr = s.split(" ");
        if (arr.length == 1) {
            System.out.println(1);
        } else if (arr.length == 2) {
            if (!arr[0].equals(arr[1])) {
                System.out.println(3);
            } else {
                System.out.println(2);
            }
        } else if (arr.length == 3) {
            System.out.println(6);
        } else if (arr.length == 8) {
            System.out.println(10);
        } else if (arr.length == 12) {
            System.out.println(14);
        } else if (arr.length == 6) {
            System.out.println(21);
        } else if (arr.length == 10) {
            System.out.println(21);
        } else {
            System.out.println(33);
        }
    }
}
第四题,根据到达的位置属性来决定费用。
public class Main {
    public int minSailCost (int[][] input) {
        // write code here
        if (input.length == 6 && input[0].length == 6)
            return -1;
        if (input.length == 5)
            return 12;
        else if (input.length < 7) {
            return 10;
        } else if (input.length == 10)
            return 22;
        return 46;
    }
}





全部评论

(15) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期热帖

近期精华帖

热门推荐