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

#网易##笔经#
全部评论
第一题卡死在了排序上,去掉排序就ac了,第二题只有20%😂
点赞 回复 分享
发布于 2021-08-21 20:01

相关推荐

最终还是婉拒了小红书的offer,厚着脸皮回了字节。其实这次字节不管是组内的氛围、HR的沟通体验,都比之前好太多,开的薪资也还算过得去,这些都是让我下定决心的原因之一。但最核心的,还是抵不住对Agent的兴趣,选择了Ai Coding这么一个方向。因为很多大佬讲过,在未来比较火的还是属于那些更加垂类的Agent,而Ai Coding恰好是Coding Agent这么一个领域,本质上还是程序员群体和泛程序员群体这个圈子的。目前也已经在提前实习,也是全栈这么一个岗位。就像最近阿里P10针对前端后端等等不再那么区分,确实在Agent方向不太区分这个。尤其是我们自己做AI Coding的内容,基本上90%左右的内容都是AI生成的,AI代码仓库贡献率也是我们的指标之一。有人说他不好用,那肯定是用的姿态不太对。基本上用对Skill、Rules 加上比较好的大模型基本都能Cover你的大部分需求,更别说Claude、Cursor这种目前看来Top水准的Coding工具了(叠甲:起码在我看来是这样)。所以不太区分的主要原因,还是针对一些例如Claude Code、Cursor、Trae、Codex、CC等一大堆,他们有很多新的概念和架构提出,我们往往需要快速验证(MVP版本)来看效果。而全栈就是这么快速验证的一个手段,加上Ai Coding的辅助,目前看起来问题不大(仅仅针对Agent而言)。而且Coding的产品形态往往是一个Plugin、Cli之类的,本质还是属于大前端领域。不过针对业务后端来看,区分还是有必要的。大家很多人也说Agent不就是Prompt提示词工程么?是的没错,本质上还是提示词。不过现在也衍生出一个新的Context Eneering,抽象成一种架构思想(类比框架、或者你们业务架构,参考商品有商品发布架构来提效)。本质还是提示词,但是就是能否最大化利用整个上下文窗口来提升效果,这个还是有很多探索空间和玩法的,例如Cursor的思想:上下文万物皆文件, CoWork之类的。后续也有一些Ralph Loop啥的,还有Coding里面的Coding Act姿态。这种才是比较核心的点,而不是你让AI生成的那提示词,然后调用了一下大模型那么简单;也不是dify、LangGraph搭建了一套workflow,从一个node走到另外一个node那么简单。Agent和WorkFLow还是两回事,大部分人也没能很好的区分这一点。不过很多人说AI泡沫啥啥啥的,我们ld也常把这句话挂在嘴边:“说AI泡沫还是太大了”诸如此类。我觉得在AI的时代,懂一点还是会好一点,所以润去字节了。目前的实习生活呢,除了修一些Tools的问题,还包括对比Claude、Cursor、Trae在某些源码实现思想上的点,看看能不能迁移过来,感觉还是比较有意思。不过目前组内还是主要Follow比较多,希望下一个阶段就做一些更有创新的事情哈哈。这就是一个牛马大学生的最终牧场,希望能好好的吧。说不定下次发的时候,正式AI泡沫结束,然后我又回归传统后端这么一个结局了。欢迎交流👏,有不对的🙅不要骂博主(浅薄的认知),可以私聊交流
码农索隆:和优秀的人,做有挑战的事
点赞 评论 收藏
分享
评论
5
16
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务