JS赛马网的笔试题提问

图片描述

如图所示,一个很简单的题目吧,但是我写完只有20%的准确率,请问这是为什么

阅读 4.7k
5 个回答

leetcode 440原题

function findKthNumber(n, k) {
    let curr = 1;
    k = k - 1;
    while (k > 0) {
        let steps = calSteps(n, curr, curr + 1);
        if (steps <= k) {
            curr += 1;
            k -= steps;
        } else {
            curr *= 10;
            k -= 1;
        }
    }
    return curr;
}

function calSteps(n, n1, n2) {
    let steps = 0;
    while (n1 <= n) {
        steps += Math.min(n + 1, n2) - n1;
        n1 *= 10;
        n2 *= 10
    }
    return steps;
}

给一个答案不对的结果实例, 目测没问题, 假如传入的n不变, 遍历出的num 也固定, 所以找到数组中index为3(4-1)的值也唯一

加上校验试一下

if (typeof n !== 'number' || typeof m !== 'number' || n < 1 || n < m){
    return null;
}

n和m都不是正数的时候,你考虑了么???

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题