小华和小薇一起通过玩积木游戏学习数学。
他们有很多积木,每个积木块上都有一个数字,积木块上的数字可能相同。
小华随机拿一些积木挨着排成一排,请小薇找到这排积木中数字相同且所处位置最远的2块积木块,计算他们的距离。
小薇请你帮忙替解决这个问题。
第一行输入为N,表示小华排成一排的积木总数。
接下来N行每行一个数字,表示小华排成一排的积木上数宇。
相同数宇的积木的位置最远距离;
如果所有积木数字都不相同,请返回-1。
0<=积木上的数字<109
1<=积木长度<=105
function findFarthestDistance(N, input) {
const numbers = input.split(" ")
const map = new Map();
let max = -1;
for (let i = 0; i < N; i++) {
const num = numbers[i];
if (map.has(num)) {
const distance = i - map.get(num);
max = Math.max(distance, max);
} else {
map.set(num, i);
}
}
return max;
}
5
1
2
3
2
1
4
很明显,距离最远的相同的数是1。
下一篇:华为OD机试真题 JavaScript 实现【相对开音节】【2022Q4 100分】,附详细解题思路
本文收录于,华为OD机试(JavaScript)真题(A卷+B卷)
每一题都有详细的答题思路、详细的代码注释、样例测试,订阅后,专栏内的文章都可看,可加入华为OD刷题群(私信即可),发现新题目,随时更新,全天CSDN在线答疑。