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