เส้นรอบรูปของสามเหลี่ยมเป็นผลรวมของทั้งสามด้านของสามเหลี่ยม เราจำเป็นต้องเขียนฟังก์ชัน 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