【发布时间】:2020-10-10 08:47:04
【问题描述】:
好的,我正在使用 HackerRank 的 10 天 Javascript 学习 Javascript,我在第 3 天:其中包括数组问题。 当前的问题包括从两个输入返回第二高的值,第一个是数组上的项目数量,第二个是将保存在“nums”数组中的值的数量。 我使用下面的代码完成了它,但仅使用以下输入案例,如果我为不同的输入尝试相同的代码(见最后),它会返回给我“错误答案”。 您可以在此处阅读有关该问题的更多信息: https://www.hackerrank.com/challenges/js10-arrays/problem
'use strict';
process.stdin.resume();
process.stdin.setEncoding('utf-8');
let inputString = '';
let currentLine = 0;
process.stdin.on('data', inputStdin => {
inputString += inputStdin;
});
process.stdin.on('end', _ => {
inputString = inputString.trim().split('\n').map(string => {
return string.trim();
});
main();
});
function readLine() {
return inputString[currentLine++];
}
/* This is the code that I wrote */
function getSecondLargest(nums) {
nums.sort();
let maxValue = Math.max(...nums);
let count = 0;
for (let i=0;i<nums.length;i++){
if (nums[i]==maxValue){
count++;
}
}
let secondMaxValue = nums[(nums.lastIndexOf(maxValue)-count)];
return secondMaxValue;
}
function main() {
const n = +(readLine());
const nums = readLine().split(' ').map(Number);
console.log(getSecondLargest(nums));
}
5
2 3 6 6 5
但是当我尝试使用以下输入的相同代码时,我得到“错误答案”
10
1 2 3 4 5 6 7 8 9 10
有什么解释或建议吗?
【问题讨论】:
-
请查看minimal reproducible example 发布代码指南和edit 相应问题。理想情况下,您从示例中删除所有与输入相关的代码,并通过硬编码输入显示失败。此外,显示的代码中绝对没有任何内容可以打印“错误答案”文本 - 最好确保您看到的输出/错误消息与帖子中代码的输出匹配。
-
stackoverflow.com/a/68708045/12401517 访问此链接了解此问题
标签: javascript node.js