2
* @param {number[][]} fruits3
* @param {number} startPos7
var maxTotalFruits = function (fruits, startPos, k) {8
let n = Math.max(fruits[fruits.length - 1][0], startPos) + 1;9
let numFruits = new Array(n).fill(0);10
let sums = new Array(n).fill(0);11
for (let obj of fruits) {15
sums[startPos] = numFruits[startPos];16
for (let i = startPos + 1; i < n && i <= startPos + k; i++) {17
sums[i] = sums[i - 1] + numFruits[i];19
for (let i = startPos - 1; i >= 0 && i >= startPos - k; i--) {20
sums[i] = sums[i + 1] + numFruits[i];24
for (let leftMoves = k; leftMoves >= 0; leftMoves--) {25
let rightMoves = Math.max(k - 2 * leftMoves, 0);26
let leftPos = Math.max(0, startPos - leftMoves);27
let rightPos = Math.min(n - 1, startPos + rightMoves);28
let count = sums[leftPos] + sums[rightPos] - sums[startPos];29
output = Math.max(output, count);31
for (let rightMoves = k; rightMoves >= 0; rightMoves--) {32
let leftMoves = Math.max(k - 2 * rightMoves, 0);33
let leftPos = Math.max(0, startPos - leftMoves);34
let rightPos = Math.min(n - 1, startPos + rightMoves);35
let count = sums[leftPos] + sums[rightPos] - sums[startPos];36
output = Math.max(output, count);