网易 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