/** * @param {number[]} nums * @param {number} k * @return {number[]} */ const getAverages = (nums, k) => { if (k === 0) return nums; let result = []; let sum = 0; for (let i = 0; i < (k * 2); i++) { sum += nums[i]; } console.log("sum:" + sum) for (let i = 0; i < nums.length; i++) { if (i < k || i + k >= nums.length) { result.push(-1); continue; } if (undefined !== nums[i - k - 1]) sum -= nums[i - k - 1]; sum += nums[i + k]; // for (let j = i - k; j < i + k + 1; j++) { // console.log(`from ${j} to ${i + k}`) // tmpSum += nums[j]; // } result.push(Math.floor(sum / ((k * 2) + 1))); } return result; }; // const getAverages = (nums, k) => { // if (k === 0) return nums; // let result = []; // // for (let i = 0; i < nums.length; i++) { // if (i < k || i + k >= nums.length) { // result.push(-1); // continue; // } // // let tmpSum = 0; // console.log(`> ${i} `) // for (let j = i - k; j < i + k + 1; j++) { // console.log(`from ${j} to ${i + k}`) // tmpSum += nums[j]; // } // // result.push(Math.floor(tmpSum / ((k * 2) + 1))); // } // // return result; // }; let x = null; // 9 // _ _ // 0 1 2 3 4 5 6 7 8 x = getAverages([7, 4, 3, 9, 1, 8, 5, 2, 6], 3) // [-1,-1,-1,5,4,4,-1,-1,-1] // x = getAverages([100000], 0) // [100000] // x = getAverages([8], 100000) console.log("Result") console.log(x)