【Web前端问题】JS赛马网的笔试题提问
如图所示,一个很简单的题目吧,但是我写完只有20%的准确率,请问这是为什么
回答:
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都不是正数的时候,你考虑了么???
以上是 【Web前端问题】JS赛马网的笔试题提问 的全部内容, 来源链接: utcz.com/a/140411.html