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