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

การเลือกขอบสามเหลี่ยมที่มีปริมณฑลสูงสุด JavaScript


เส้นรอบรูปของสามเหลี่ยมเป็นผลรวมของทั้งสามด้านของสามเหลี่ยม เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของตัวเลขอย่างน้อยสามองค์ประกอบขึ้นไป

ฟังก์ชันของเราควรเลือกด้านที่ยาวที่สุดสามด้าน (จำนวนที่มากที่สุด) จากอาร์เรย์ ซึ่งเมื่อผลรวมแล้วสามารถกำหนดขอบเขตสูงสุดจากอาร์เรย์ได้ เราต้องแน่ใจว่าด้านทั้งสามที่เลือกไว้สามารถสร้างสามเหลี่ยมได้ในความเป็นจริง หากไม่มีสามด้านในอาร์เรย์ที่สามารถสร้างสามเหลี่ยมที่ถูกต้องได้ เราก็จะต้องคืนค่าศูนย์

สามเหลี่ยมที่ถูกต้องคือสามเหลี่ยมนั้นซึ่งผลรวมของสองด้านใด ๆ มากกว่าด้านที่สามเสมอ

ตัวอย่าง

const arr = [1, 2, 3, 5, 6, 7, 9];
const largestPerimeter = (arr = []) => {
   arr.sort((a, b) => a - b);
   let max = 0;
   for (let i = arr.length - 1; i >= 2; i--) {
      let start = i - 2;
      let end = i - 1;
      while (start < end) {
         if (arr[end] + arr[start] > arr[i]) {
            return arr[end] + arr[start] + arr[i];
         }
         else {
            start++;
         };
      };
   };
   return 0;
};
console.log(largestPerimeter(arr));

ผลลัพธ์

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

22