我们需要编写一个JavaScript函数,该函数将Integers数组作为第一个也是唯一的参数。
然后,该函数应遍历数组,并从数组中选择仅在数组中出现一次的最大数字。之后,返回此数字,如果数组中没有唯一数字,则应返回-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