ปัญหา
เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของตัวเลข arr เป็นอาร์กิวเมนต์แรกและอาร์กิวเมนต์เดียว
ฟังก์ชันของเราต้องหาความยาวของ อาร์เรย์ย่อยแบบต่อเนื่อง เช่นว่าถ้าเราจัดเรียงเฉพาะอาร์เรย์ย่อยนี้ในลำดับจากน้อยไปมาก อาร์เรย์ทั้งหมดก็จะเรียงลำดับจากน้อยไปหามากเช่นกัน
ตัวอย่างเช่น หากอินพุตของฟังก์ชันคือ −
const arr = [3, 7, 5, 9, 11, 10, 16];
จากนั้นผลลัพธ์ควรเป็น −
const output = 5;
คำอธิบายผลลัพธ์
เพราะถ้าเราจัดเรียง [7, 5, 9, 11, 10] ทั้งอาร์เรย์จะถูกจัดเรียง
ตัวอย่าง
ต่อไปนี้เป็นรหัส -
const arr = [3, 7, 5, 9, 11, 10, 16]; const shortestLength = (arr = []) => { const sorted = [...arr].sort((a, b) => a - b) let start = 0 let end = sorted.length - 1 while (sorted[start] === arr[start] && start < arr.length) { start += 1 } while (sorted[end] === arr[end] && end >= 0) { end -= 1 } return end >= start ? end - start + 1 : 0 } console.log(shortestLength(arr));
ผลลัพธ์
ต่อไปนี้เป็นเอาต์พุตคอนโซล -
5