Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ค้นหาจำนวนที่ไม่ซ้ำมากที่สุดในอาร์เรย์ใน 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