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

ค้นหาตัวอักษรที่เล็กที่สุดที่มากกว่าเป้าหมายใน JavaScript


สมมติว่าเราได้รับอาร์เรย์ของตัวอักษรที่จัดเรียงซึ่งมีเฉพาะตัวพิมพ์เล็กเท่านั้น และกำหนดเป้ ​​าหมายเป้าหมาย

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์เป็นอาร์กิวเมนต์แรกและตัวอักษรเป็นอาร์กิวเมนต์ที่สอง ฟังก์ชันนี้ควรจะค้นหาองค์ประกอบที่เล็กที่สุดในรายการที่ใหญ่กว่าเป้าหมายที่กำหนด

เราต้องจำไว้ว่าตัวอักษรก็ล้อมรอบ ตัวอย่างเช่น หากเป้าหมายคือ target ='z' และตัวอักษร =['a', 'b'] คำตอบคือ 'a'

ตัวอย่างเช่น −

หากอาร์เรย์อินพุตและตัวอักษรเป็น −

const arr = ["c", "f", "j"];
const target = "a";

จากนั้นผลลัพธ์ควรเป็น −

const output: "c";

ตัวอย่าง

รหัสสำหรับสิ่งนี้จะเป็น −

const arr = ["c", "f", "j"];
const target = "a";
const findNearestLetter = (arr = [], target = '') => {
   let left = 0;
   let right = arr.length - 1;
   while (left <= right) {
      let mid = left + (right - left) / 2;
      if (arr[mid] <= target) {
         left ++;
      } else {
         right --;
      };
   };
   if (left == arr.length) {
      return arr[0];
   };
   return arr[left];
};
console.log(findNearestLetter(arr, target));

ผลลัพธ์

และผลลัพธ์ในคอนโซลจะเป็น −

c