ปัญหา
เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่ใช้อาร์เรย์ arr ซึ่งแทนตำแหน่งของดาวเคราะห์น้อยต่างๆ ในพื้นที่หนึ่งมิติ
สำหรับดาวเคราะห์น้อยแต่ละดวง ค่าสัมบูรณ์แสดงถึงขนาดของมัน และเครื่องหมายแสดงถึงทิศทางของมัน (ความหมายเชิงบวก ด้านขวา ความหมายเชิงลบ ด้านซ้าย) ดาวเคราะห์น้อยแต่ละดวงเคลื่อนที่ด้วยความเร็วเท่ากัน
หน้าที่ของเราควรจะค้นหาสถานะของดาวเคราะห์น้อยหลังจากการชนกันทั้งหมด หากดาวเคราะห์น้อยสองดวงมาบรรจบกัน ดาวเคราะห์น้อยดวงนั้นก็จะระเบิด ถ้าทั้งคู่มีขนาดเท่ากันทั้งคู่จะระเบิด ดาวเคราะห์น้อยสองดวงที่เคลื่อนที่ไปในทิศทางเดียวกันจะไม่มีวันมาบรรจบกัน
ตัวอย่างเช่น หากอินพุตของฟังก์ชันคือ −
ป้อนข้อมูล
const arr = [1, 7, 3, 6, 5, 6];
ผลผลิต
const output = 3;
คำอธิบายผลลัพธ์
ผลรวมของตัวเลขทางด้านซ้ายของดัชนี 3 (nums[3] =6) เท่ากับผลรวมของตัวเลขทางด้านขวาของดัชนี 3
นอกจากนี้ 3 เป็นดัชนีแรกที่เกิดสิ่งนี้ขึ้น
ตัวอย่าง
ต่อไปนี้เป็นรหัส -
const arr = [1, 7, 3, 6, 5, 6];
const medianIndex = (arr = []) => {
let sum = arr.reduce((acc, num) => acc + num, 0)
let currentSum = 0
for (let i = 0; i < arr.length; i++) {
currentSum += (arr[i - 1] || 0)
sum -= arr[i]
if (currentSum === sum) {
return i
}
}
return -1
}
console.log(medianIndex(arr)); ผลลัพธ์
3