当前位置: 首页 > 面试经验 >

美团(23届秋招)前端笔经9.17场

优质
小牛编辑
109浏览
2023-03-28

美团(23届秋招)前端笔经9.17场


第三次做了……
第一次做(8.20)没写笔经,repo在此: 8.20美团笔试
第二次做(9.10):美团(23届秋招)前端笔经9.10场

9.17  10:00 笔试

平台:赛码网;时间:120min;总分100分
题型:单选20*2分=40分;专项选择10*2分=20分;编程2*20分=40分;问答题0分

一、单选题
选择…好难,几乎没有前端题…(不懂为什么这么考

二、专项选择
其实就是跟行测差不多啦,规律题、数学题……

三、编程题(acm模式)
题1(20分):
题目描述:
小团喜欢完整且连续的东西,比如连续的一段整数,如3 4 5 6 7。
如果一个数组在按升序或降序排列之后是连续的一段整数,那么他会觉得这个数组很好看。
现在小团有一个可能不那么好看的数组,而他想通过数次形容“将第k个元素加1”或“将第k个元素减1”的操作将其变成好看的数组。
他想知道至少要进行多少次操作才能将他的这个数组变成他认为好看的数组。
输入描述:
第一行有一个正整数(1≤n≤1000),代表数组中的个数。
第二行有n个空格隔开的整数,代表数组中的n个数。
这些数的大小在1到10000之间。
输出描述:
输出一个非负整数,代表所求的答案。

样例输入:
5
7 3 11 5 2
样例输出:
7
提示:
其中一个最优解为将五个元素2调整成4,将第三个元素11调整成6,最后得到的数组是7 3 6 5 4。
这个数组排序之后可以得到一段连续的整数3 4 5 6 7 ,因此是一个小团觉得好看的数组。
个人解答(通过82%):
let n = parseInt(read_line())
let arr = read_line().split(' ').map(item=>parseInt(item))
arr.sort((a,b)=>a-b)
let sum = new Array(n)
let res = new Array(n)
arr.forEach((item,index)=>{
  abc(index,item)
  sum[index]=0
  res.forEach((it,ind)=>{
    sum[index] += Math.abs(it-arr[ind])
  })
})
sum.sort((a,b)=>a-b)
题2(20分):
 类似资料: