首页 > 网易 20210821 校招 通用技术A卷 笔试 完整题目
头像
牛客584837756号
编辑于 2021-08-21 21:13
+ 关注

网易 20210821 校招 通用技术A卷 笔试 完整题目

投的杭州研究院测开

4 道编程题一共 100 分,还有 1 道简答题 20 分,应该先做简答题再做编程题。我留了 20 分钟的时间给简答题,太浪费时间了。

简答题

请列举两类常见的软件开发模型并描述其特点。

编程题

数组中两个元素和小于等于M的组合数(20 分)

这道题是 ACM 模式,需要自己写输入输出。

题目描述

对于一个整型数组,里面任何2个元素相加,小于等于M的组合有多少种;
如果有符合的,输出组合对数;
没有,输出0;

输入描述

输入有2行,第1行为int整型数组,第2行为M值,且M也为int整型数字
比如:

7 -1 -1
9

表示数组为[7, -1, -1]M=9

输出描述

里面任何两个元素小于等于9的组合有3种,分别是(7,第2个元素 -1), (第2个元素 -1, 第3个元素 -1), (7, 第3个元素 -1),不同位置相同的元素值,但可以组成不同的组合
故输出为 3

输入

7 -1 -1
9

输出

3

说明

输入:数组为[7, -1, -1]M=9
输出:3

这才发现原来是小于等于,我就说怎么半天都不对,我只判断了小于。我吐了。

题目2(30分)

这道题是核心代码模式,不用自己写输入输出,只需要写函数内部

import java.util.*;

public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 返回Sn的第k位字符
     * @param n int整型 Sn的n
     * @param k int整型 需要返回的字符下标位
     * @return char字符型
     */
    public char findKthBit (int n, int k) {
        // write code here
}

题目描述

给你两个正整数 n 和 k,其中 ,字符串 的形成规则如下:

表示 26 个字母 a-z,依次是:

= "a"

= "b"

= "c"

...

="z"

="a"

当 i > 1 时,

其中 + 表示字符串的连接操作,reverse(x) 返回反转 x 后得到的字符串,而 invert(x) 则会翻转 x 中的每一位(例如:'a' 翻转为'z','b' 翻转为'y', ... 而 'z' 翻转为 'a')。

例如,符合上述描述的序列的前 4 个字符串依次是:

  • ="a"
  • ="abz"
  • ="abzcayz"
  • ="abzcayzdabzxayz"

请你返回 的 第 k 位字符 ,题目数据保证 k 一定在 长度范围以内。

输入

3,1

输出

a

说明

为 "abzcayz",其第 1 位为 "a" 。

输入

4,11

输出

z

说明

为 "abzcayzdabzxayz",其第 11 位为 "z" 。

纸张分配问题(30分)

这道题是 ACM 模式,需要自己写输入输出。

原题: LeetCode 135 分发糖果,LeetCode这道题目是一条直线,网易这道题是围成一圈。

题目描述

一群小朋友围成一圈准备开始画画,现在老师需要给这些孩子发纸张;
规则是如果一个小朋友的年龄比自己旁边的人大,那么这个小朋友就必须分到比身旁孩子更多的纸张;
所有孩子至少要有一个纸张,请帮助老师设计一个算法,算出最少需要多少张纸。
备注:
假设小朋友的总数量不会超过 100 个;
每个小朋友至少要求至少有一张纸;
当且仅当年龄大于相邻小朋友时,才会要求纸张数量更多(年龄相等的情况下,允许小于或者等于)。

输入描述

输入是一个数组,表示孩子的年龄,以空格隔开,举例如下:
4 4 5
代表 3 个小朋友,年龄分别是4岁,4岁,5岁

输出描述

输出是最少需要的纸张的数量,以上述的输入为例,则最少需要
1+1+2=4
共4张纸,输出结果如下即可
4

输入

1 2 3

输出

6

说明

3 个小朋友,年龄分别需要 1+2+3 共 6 张纸

输入

5

输出

1

说明

1 个小朋友,只需要 1 张纸即可

航海探险(20分)

这道题是核心代码模式,不用自己写输入输出,只需要写函数内部

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 计算最小航行费用
     * @param input int整型二维数组 二维网格
     * @return int整型
     */
    public int minSailCost (int[][] input) {
        // write code here
    }
}

题目描述

给你一个由 '0'(水)、'1'(陆地)和'2'(障碍物)组成的的二维网格,再给你一个两栖交通工具,走陆地费用为1,走水路费用为2,障碍物无法通行,请你计算从网格的起始位置行驶到最终位置的最小费用。
注意:仅可以水平方向 和 竖直方向行驶。如果无法到达目的地,则返回-1
另外,起始第1个位置不算,根据到达位置的属性来决定费用。

输入

[[1,1,1,1,0],[0,1,0,1,0],[1,1,2,1,1],[0,2,0,0,1]]

输出

7

说明

路径:[0,0]起,经过[0,1],[0,2],[0,3],[1,3],[2,3],[2,4],[3,4],到达终点。

全 A 代码

821 网易笔试A卷投票+全A代码
@这个昵称与你无缘
https://www.nowcoder.com/discuss/715035

全部评论

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

推荐话题

相关热帖

近期热帖

近期精华帖

热门推荐