华为5.11机试 js语言

#华为机试# 5.11笔试

我是js答题。第一道题测试样例过了,但是提交显示运行错误。
我想问一下,选语言的时候,是有两种选择吗,一个JavaScript v8,一个JavaScript node吗。我当时没仔细看,看到一个JavaScript就选了,好像没有看到 其他后缀。
然后还给了提示代码。就是js node输入输出代码啊。
有大佬帮忙看一下第一题吗。是我的思路的问题,还是真是运行错误,选错编译器了?

题目:
给出一个长度n,和一个数组a,返回一个数组arr。arr[i]表示a[i]右边有多少个比a[i]小的数。
输入样例:
4
7 9 6 2
输出:
2 2 1 0
代码:

process.stdin.resume()
process.stdin.setEncoding('utf-8')
let input = ''
process.stdin.on('data', (data) => {
    input += data
})
process.stdin.on('end', () => {
    let inputArray = input.split('\n')
        /**
         * 待实现函数,在此函数中填入答题代码
         * doFunc()
         */
    let num = parseInt(inputArray[0])
    let arr = inputArray[1].split(' ').map((v) => parseInt(v))
    let res = new Array(num)
    let seq = []
    seq.push(arr[num - 1])
    res[num - 1] = 0
    let binSearch = function(seq, target) {
        let left = 0
        let right = seq.length - 1
        while (left <= right) {
            let mid = Math.floor((left + right) / 2)
            if (seq[mid] < target) {
                left = mid + 1
            } else {
                right = mid - 1
            }
        }
        return left
    }
    for (let i = num - 2; i >= 0; i--) {
        let index = binSearch(seq, arr[i])
        res[i] = index
        seq = seq.slice(0, index).concat([arr[i]], seq.slice(index))
            // console.log(index, seq)
            // seq.push(arr[i])
            // for (let j = seq.length - 1; j >= index; j--) {
            //     seq[j] = seq[j - 1]
            // }
            // seq[index] = arr[i]
    }
    console.log(...res)
    process.exit()
})
#华为机试##华为##笔试题目##JavaScript#
全部评论
你的程序没有process.stdin.emit('end&(17326)#39;); 所以一直在读取数据不会执行啊,你可以单独用node运行试试就知道。然后为什么你的答案要二叉树搜索呀?只要检查自身位置元素右边有多少个小于自己的,可以一行filter搞定for (let i = 0; i < num; i++) { res[i] = arr.filter((e, j) => e < arr[i] && j > i).length; } 我想问问楼主,真实的机试像牛客网一样,有运行和编译提供吗,你的写法是node,我想用纯javascript v8,但是javascript本身不能输入,牛客网提供了readline()
点赞 回复 分享
发布于 2022-05-17 01:17
我用的c++,和你一样的结果。也是两个测试用例都没问题,提交了显示0%
点赞 回复 分享
发布于 2022-05-12 19:02
感谢分享,不过我听说是有三道机试题的吧
点赞 回复 分享
发布于 2022-05-12 18:30

相关推荐

评论
1
11
分享

创作者周榜

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