8.20 美团前端笔试
前言:
- 题型:20单选(计算机基础知识那些)、10专项选择题(行测那些啦)、2编程、1论述题(没分哦,应该可不做)
- 编程题比较简单,中间遇到一些小问题,都出在处理输入上了。上次就在输入上出错了,这一块值得注意:https://www.nowcoder.com/discuss/1014047
单选题
会的都会,不会的也来不及补了;专项选择题就是考一些逻辑推理的题目,花点时间能做出来
编程题
有老哥把题目贴出来,我就不赘述了,前端考了3、2题:https://www.nowcoder.com/discuss/1021868
1.串烤串。
- 这题思路就是两个字符串依次输出为一个新的字符串就好了
- 我一顿写完了以后,发现没有AC,检查后发现是输入的问题,我先是写gets(50000),后来无脑写gets(500000)就通过了
2.突击复习。
- 思路:我一开始想的是那肯定优先把分数高的概率变为100%啦,但是仔细一想并不是这样的,举个反例“100-0.7 80-0.2”这两组数据,复习一个。你把100分那个复习完,总分为 100 + 16 = 116; 而你复习80分那个,总分为 70 + 80 = 150。 所以应该是复习提分空间更大的那个,所以算出每一门的提分空间,排序取前m个就好了。最后总分是:原成绩 + 前m个提高的分数
function maxScore(scoreArr, pArr, n, m) { // 取更改后收益增值最高的前m个 let delat = new Array(n), res = 0; for (let i = 0; i < n; ++i) { res += scoreArr[i] * pArr[i]; delat[i] = scoreArr[i] * (100 - pArr[i]); } delat.sort((a, b) => b - a); for (let i = 0; i < m; ++i) { res += delat[i]; } console.log((res / 100).toFixed(2)); }