2019网易笔试多少分进面试(网易校招笔试竟刷人超70%)

深圳SEO
深圳SEO
深圳SEO
17889
文章
0
评论
2020年3月22日00:32:38 评论 20,448

  今天我要将的这道题是网易 8 月 3 号研发岗笔试的第一题,也是四道题中最简单的一道。这道题涉及到前缀和的应用,所以我想借这道题给大家讲一讲前缀和相关的一些知识,以后大家遇到这道题,就可以快速秒杀了。

  问题描述

  下面我描述下这道题,不过我给的描述是简化版的,实际上再做笔试题的时候,每道题的描述都巨长,一般都会根据实际场景来给出问题的,有些人可能阅读了十几分钟,然后不知道自己要干嘛,我这里给出最简化的版本。

  2019网易笔试多少分进面试(网易校招笔试竟刷人超70%)

  第一题大致是这样,不过不是和原题完全一样哈,在输入和输出有小许区别,因为具体的输入输出我忘了。我这个描述说简化好像也挺长,不过原题就更加长了。

  解答

  那么这道题难吗?说实话不难,不过你可以先自己再脑子里想想怎么做比较好,或许在考场上 20 分钟你还真不一定做的出来。

  有些人说,这还不简单,每次询问的时候,我都遍历一下所有人的成绩,这样的花时间复杂度是 O(n * m),显然,如果你这样做,那么是一定通不过的,一定会超时。一般暴力法能够通过 20% ~ 30% 的测试用力,如果一道题 20 分的话,能拿到 4~6 分。如果你实在没思路,那么暴力也是个不错的选择。

  1、二分法

  这道题我是用二分法做的,就是先对所有人的成绩进行排序,不过排序的时候我们需要开一个新的数组来存储。然后每次查询的时候可以通过二分查找进行匹配,由于用到了排序,需要花 O(nlogn) 的时间,m 次查询花的时间大致为 O(mlogn)。所以平均时间复杂度可以算是 O((m+n)logn)。这个时间复杂度通过所有测试用例,代码如下(没学过java的也能看懂):

  2019网易笔试多少分进面试(网易校招笔试竟刷人超70%)

  2019网易笔试多少分进面试(网易校招笔试竟刷人超70%)

  这里说明一下,输出的时候我没有输出"%"号哈。

  前缀和

  不过这道题更好的做法是采用前缀和来做。题设中每个同学的分数不超过 150,不小于 0,那么我们可以用一个数组 arr,然后让 arr[i] 表示分数不超过 i 的人数。通过这种方式,我们可以把时间复杂度控制在 O(n+m)。直接看代码吧,会更好理解(这里我就不写输入的代码了,用a[]存放成绩,m[]存放m次询问):

  2019网易笔试多少分进面试(网易校招笔试竟刷人超70%)

  这种方法就叫做前缀和,用这种方法简单了很多。当然前缀和还有其他应用,例如:

  如果给你一个数组 arr[],然后进行 m 次询问,每次询问输入两个数 i,j(i <=j)。要求你输出 arr[i] ~ arr[j] 这个区间的和。这个时候就可以使用前缀和的方式了。前缀和的构造也是很好构造的,例如 arr[] 变成前缀和的构造方式如下

  2019网易笔试多少分进面试(网易校招笔试竟刷人超70%)

  前缀和看起来还是挺简单的,不过在做题中,或许会有意想不到的作用,例如这次的笔试,所以今天给大家讲解一下。

  最后我再问你一个和前缀和类似的问题,给你一串长度为n的数列a1,a2,a3……an,要求对a[i]~a[j]进行m次操作:

  操作一:将a[i]~a[j]内的元素都加上P

  操作二:将a[i]~a[j]内的元素都减去P

  最后再给出一个询问求a[i]-a[j]内的元素之和。

  这个你会怎么做呢?这个时候就涉及到差分的知识了,不过它和前缀和类似,感兴趣的可以研究一下。

  最后

  这里关于笔试题有几点建议,由于笔试题大多数都需要我们处理输入输出,而像 leetcode,剑指 offer 都是不需要我们处理这些的,所以会不熟悉,所以我建议可以去刷下往年的真题熟悉一下。

  还有就是大部分都是可以直接暴力的,然后能拿 20%~30%的分数,想了十分钟还是没好的思路的,建议直接暴力。

  还有就是有时候笔试是不准你用本地 IDE 的,所以我建议平时刷题的时候,直接再网页打代码,别跑到本地 IDE 打好再粘贴过来。

深圳SEO
股票几点开盘几点收盘(股市开盘收盘时间表) 动态

股票几点开盘几点收盘(股市开盘收盘时间表)

  现如今,愈来愈多的人刚开始挑选个股,个股必须了解大量的事儿,例如开盘。那麼,2019个股每日新房开盘几日?下边的小系列产品将向你详细介绍个股的新房开盘和收盘时间,期待能让你一些协助。   个股何时...
浑身就腿粗怎么减(腿粗怎么都减不下去怎么办) 动态

浑身就腿粗怎么减(腿粗怎么都减不下去怎么办)

  在日常生活中,大部分全部的女性都不满意自身的人体。比如,一些女性上半身瘦而粗腿,一些女性腿细而上半身肥胖症,因此 沒有女性对自身的身型非常令人满意。实际上,针对粗腿的女士而言,腿粗的原因关键与日常...
喝中药能喝茶吗(吃中药期间能喝茶吗) 动态

喝中药能喝茶吗(吃中药期间能喝茶吗)

  喝中药能喝茶吗(吃中药期间能喝茶吗)中药副作用小,并且成效不错,吃了很少会对身体形成依赖性,因此很多人在生病时喜欢选择中药吃。但是有一个问题就出来了,吃中药期间可以喝茶吗?   身边很多人都说喝茶...
哈士奇好养吗(养它有什么好处和坏处呢) 动态

哈士奇好养吗(养它有什么好处和坏处呢)

  哈士奇好养吗(养它有什么好处和坏处呢)对于大部分喜欢狗狗的人来说,几乎不可能抵抗西伯利亚哈士奇(Siberian Husky) 的迷人魅力。它们拥有狼一般野性的外表和冰川般蓝色的眼睛,与之活泼快乐...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: