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

ค้นหาสี่เหลี่ยมในลำดับที่จัดเรียงใน JavaScript


ปัญหา

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของจำนวนเต็ม arr เรียงตามลำดับที่เพิ่มขึ้น

ฟังก์ชันของเราควรจะส่งคืนอาร์เรย์ของกำลังสองของแต่ละตัวเลข และจัดเรียงตามลำดับที่เพิ่มขึ้นด้วย

ตัวอย่างเช่น หากอินพุตของฟังก์ชันคือ −

const arr = [-2, -1, 1, 3, 6, 8];

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

const output = [1, 1, 4, 9, 36, 64];

ตัวอย่าง

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

const arr = [-2, -1, 1, 3, 6, 8];
const findSquares = (arr = []) => {
   const res = []
   let left = 0
   let right = arr.length - 1
   while (left <= right) {
      const leftSquare = arr[left] * arr[left]
      const rightSquare = arr[right] * arr[right]
      if (leftSquare < rightSquare) {
         res.push(rightSquare)
         right -= 1
      } else {
         res.push(leftSquare)
         left += 1
      }
   }
   return res.reverse();
};
console.log(findSquares(arr));

ผลลัพธ์

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

[ 1, 1, 4, 9, 36, 64 ]