Js - решение задачи Range Sum Query - Неизменный с созданием объекта и его свойств

Я просматривал проблемы на сайте leetcode и увидел проблему, к которой я не знаю, как подойти. Вот как они это объясняют:

Для заданного целого числа nums найдите сумму элементов между индексами i и j (i ≤ j) включительно.

Пример: данные числа = [-2, 0, 3, -5, 2, -1]

sumRange (0, 2) -> 1 sumRange (2, 5) -> -1 sumRange (0, 5) -> -3 Примечание. Можно предположить, что массив не изменяется. Есть много вызовов функции sumRange.

И это код:

/**
 * @param {number[]} nums
 */
var NumArray = function(nums) {
   this.nums = nums;
};

/** 
 * @param {number} i 
 * @param {number} j
 * @return {number}
 */
NumArray.prototype.sumRange = function(i, j) {
    let sum = 0;
    for (i; i <= j; i++) {
        sum += this[i];
    }
    return sum;
};

/** 
 * Your NumArray object will be instantiated and called as such:
 * var obj = Object.create(NumArray).createNew(nums)
 * var param_1 = obj.sumRange(i,j)
 */

То, что я не знаю, как это сделать, или что именно это значит, это эта часть:

var obj = Object.create(NumArray).createNew(nums)

Предполагаю ли я создать свойство createNew, которое принимает мам, создателей и массив, и зачем мне это делать, если числа уже отправлены в виде массива?

1 ответ

Решение

что именно это означает, эта часть:

var obj = Object.create(NumArray).createNew(nums)

Они все испортили и имели ввиду просто var obj = new NumArray(nums) (что все еще неоправданно сложно для функционального языка, такого как JS).

Очевидно, в какой-то момент описание было изменено кем-то невежественным, поскольку все старые представления JavaScript в разделе для обсуждения (например, в этом) содержат правильный код в комментарии.

Другие вопросы по тегам