在 JavaScript 中查找数组中最大的非重复数字
我们需要编写一个 JavaScript 函数,该函数将整数数组作为第一个也是唯一的参数。
该函数应遍历数组,并从数组中选取只出现一次的最大数字。之后,返回此数字;如果数组中没有唯一数字,则应返回 -1。
我们也被告知,任何数组元素的最大值不会超过 100,并且将大于 0,这意味着:
0 < arr[i] < 101
对于数组索引中的所有 i。
例如:
如果输入数组是:
const arr = [35, 37, 33, 39, 34, 39, 38, 31];
那么输出应该是:
const output = 38;
由于数组条目将始终小于或等于 100 且大于 0,我们可以简单地使用长度为 100 的数组来存储原始数组中每个数字的频率,然后从后向前遍历以选择唯一元素。
示例
代码如下:
const arr = [35, 37, 33, 39, 34, 39, 38, 31];
const pickGreatestUnique = (arr = [], bound = 100) => {
const map = Array(bound).fill(0);
for(let i = 0; i < arr.length; i++){
const num = arr[i];
map[num - 1]++;
}
for(let j = bound - 1; j >= 0; j--){
const frequency = map[j];
if(frequency === 1){
return j + 1;
}
}
return -1;
}
console.log(pickGreatestUnique(arr));输出
控制台中的输出将是:
38
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP