在 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
广告