เราจำเป็นต้องเขียนฟังก์ชัน 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