2020.0319美团笔试-前端(node.js)+讨论求解

😢感觉赛马🐴网的 OJ 对前端js太不友好了吧,5道题4道超时,js在OJ上本来速度就不如其他语言。

🧐淦!突然发现了赛🐴网的OJ注意事项:Web编程题:javascript不支持ES6及以上。不支持ES6,哦那没事了😁。

😊推荐大家去看一下leetcode300最长上升子序列-今晚两道题和 LIS有关。


一、扎银花-签到题(秒A)

AC-100%

数组从大到小排序,取前三之和,比较大小😃

const readline = require('readline')
const rl = readline.createInterface({
    input: process.stdin,
    ouput: process.stdout
})
let inArr = []
rl.on('line', line=>{
    if(!line) return
    inArr.push(line.trim())
    if(inArr.length === 3){
        let n = +inArr[0]
        let arr1 = inArr[1].split(' ').map(e=>+e)
        let arr2 = inArr[2].split(' ').map(e=>+e)
        let max1 = getMax(arr1)
        let max2 = getMax(arr2)
        let max = (max1 == max2) ? max1: Math.max(max1, max2)
        console.log(max)
    }
})

function getMax(arr) {
    let res = arr.sort((a,b)=>b-a)
    let max = res[0]+res[1]+res[2]
    return max
}

二、最长上升子序列-删除一个数

超时-18%

dp/贪心 + 二分查找,写了两种,试了两种,杠了至少半个小时🥺

两种都超时,时间复杂度dp是O(n^2),贪心 + 二分查找是O(nlogn)

const readline = require('readline')
const rl = readline.createInterface({
    input: process.stdin,
    ouput: process.stdout
})
let inArr = []
rl.on('line', line=>{
    if(!line) return
    inArr.push(line.trim())
    if(inArr.length === 2){
        let n = +inArr[0]
        let arr = inArr[1].split(' ').map(e=>+e)
        let tmp = []
        let res = []
        for (let i = 0; i < n; i++) {
            tmp = [...arr].del(i)
            res.push(lengthOfLIS(tmp))
        }
        let max = Math.max(...res)
        console.log(max)
    }
})

var lengthOfLIS = function(nums) {
    const len = nums.length
    if (len == 0) return 0
    if (len == 1) return 1
    let dp = new Array(len).fill(1)
    for (let i = 1; i < len; i++) {
        for (let j = 0; j < i; j++) {
            dp[i] = Math.max(dp[i], nums[i] > nums[j] ? dp[j] + 1 : 1)
        }
    }
    return Math.max(...dp)
};

Array.prototype.del=function(n) { 
    if(n<0) return this
    else return this.slice(0,n).concat(this.slice(n+1,this.length))
}

三、任务-dp

超时-18%

本来感觉比较简单能拿分的,最后十分钟才开始做,没做完😂

四、跑步-bfs

超时-18%

自闭了😶

五、最长上升子序列-翻转查询

超时-64%

这道题感觉思路,算法都没问题。用贪心 + 二分查找比dp的ac率还低。😶

const readline = require('readline')
const rl = readline.createInterface({
    input: process.stdin,
    ouput: process.stdout
})
let inArr = []
let n
rl.on('line',line=>{
    if(!line) return
    inArr.push(line.trim())
    n = inArr[0].split(' ').map(e=>+e)[1]
    if(inArr.length === n+2){  
        let arr = inArr[1].split('').map(e=>+e) 
        let qc = []
        for (let i = 0; i < n; i++) {
            qc[i] = inArr[i+2].split(' ')
            if(qc[i][0]=='c'){
                let [c,a,b]=qc[i]
                for (let i = a-1; i < b; i++) {
                    if(arr[i]==0){
                        arr[i]=1
                    }else {
                        arr[i]=0 
                    }
                }
            }
            if(qc[i][0]=='q'){
                console.log(lengthOfLIS(arr))
            }
        }
    }
})

var lengthOfLIS = function(nums) {
    const len = nums.length
    if (len == 0) return 0
    if (len == 1) return 1
    let dp = new Array(len).fill(1)
    for (let i = 1; i < len; i++) {
        for (let j = 0; j < i; j++) {
            dp[i] = Math.max(dp[i], nums[i] >= nums[j] ? dp[j] + 1 : 1)
        }
    }
    return Math.max(...dp)
};

总结

今晚的题总体难度比上一次的低,但我还是太菜了😢理想是4A,现实只有2A。

希望能进面试了吧🤦‍♂️

在OJ上,赛🐴网不行❌,牛客网可以✅。

有大佬讲解一下3、4的思路吗?

#美团笔试##笔试题目##前端##美团#
全部评论
js写真的是灾难,用cpp好很多,js的输入输出有点不方便。
1 回复 分享
发布于 2020-03-26 14:42
用js写的话要自己写输入输出么?
点赞 回复 分享
发布于 2020-03-26 08:24
刚收到美团笔试通知,说编程题可以用本地调试,那想请问一下除了本地调试还能用浏览器吗。。。比如查点相关函数模板啥的?
点赞 回复 分享
发布于 2020-03-24 22:09
请问一下,美团前后端实习笔试题一样吗?
点赞 回复 分享
发布于 2020-03-24 15:54
同前端,吓得我都用cpp写了
点赞 回复 分享
发布于 2020-03-20 03:16
膜大佬
点赞 回复 分享
发布于 2020-03-20 01:24
膜拜大佬。。
点赞 回复 分享
发布于 2020-03-20 00:43
第三题 两次遍历 第一次每次任务都拿最小的 第二次每个任务走一遍 然后取两次遍历的最大值 过了91
点赞 回复 分享
发布于 2020-03-19 22:48

相关推荐

点赞 评论 收藏
分享
就前几天旅游的时候,打开抖音就经常刷到这类视频:以前是高学历学生、老师、主持人,现在做着团播、擦边主播的工作,以及那些经过精心包装的“职业转型”故事——从铺天盖地的VLOG到所谓的“04年夜场工作日记”,这些内容在初中升学、高考放榜等关键时间节点持续发酵。可以说非常直接且精准地在潜移默化地影响着心智尚未成熟的青少年,使其对特殊行业逐渐脱敏。那我就想问了:某些传播公司、平台运营者甚至某些夜场的老板,你们究竟在传递怎样的价值观?点开那些视频,评论区里也是呈现明显的两极分化:一种是​​经济下行论​​:“现在就业市场已经艰难到这种程度了吗?”​​一种是事实反驳派​​:这些创作者往往拥有名校背景,从事着...
牛客刘北:被环境教育的,为了能拿到足够的钱养活自己,不甘心也得甘心,现在的短视频传播的思想的确很扭曲,但是很明显,互联网玩上一年你就能全款提A6,但你全心全意不吃不喝工作一年未必能提A6,但是在高考中考出现这个的确很扭曲,在向大家传播“不上学,玩互联网也可以轻松年入百万”,不是人变了,是社会在变
预测一下26届秋招形势
点赞 评论 收藏
分享
评论
5
23
分享

创作者周榜

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