Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

เลือกด้านสามเหลี่ยมที่มีเส้นรอบรูปสูงสุดใน JavaScript

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

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

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

ตัวอย่าง

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