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