<p>给你一个数组 <code>nums</code> ,请你完成两类查询。</p> <ol> <li>其中一类查询要求 <strong>更新</strong> 数组 <code>nums</code> 下标对应的值</li> <li>另一类查询要求返回数组 <code>nums</code> 中索引 <code>left</code> 和索引 <code>right</code> 之间( <strong>包含 </strong>)的nums元素的 <strong>和</strong> ,其中 <code>left <= right</code></li> </ol> <p>实现 <code>NumArray</code> 类:</p> <ul> <li><code>NumArray(int[] nums)</code> 用整数数组 <code>nums</code> 初始化对象</li> <li><code>void update(int index, int val)</code> 将 <code>nums[index]</code> 的值 <strong>更新</strong> 为 <code>val</code></li> <li><code>int sumRange(int left, int right)</code> 返回数组 <code>nums</code> 中索引 <code>left</code> 和索引 <code>right</code> 之间( <strong>包含 </strong>)的nums元素的 <strong>和</strong> (即,<code>nums[left] + nums[left + 1], ..., nums[right]</code>)</li> </ul> <p> </p> <p><strong>示例 1:</strong></p> <pre> <strong>输入</strong>: ["NumArray", "sumRange", "update", "sumRange"] [[[1, 3, 5]], [0, 2], [1, 2], [0, 2]] <strong>输出</strong>: [null, 9, null, 8] <strong>解释</strong>: NumArray numArray = new NumArray([1, 3, 5]); numArray.sumRange(0, 2); // 返回 1 + 3 + 5 = 9 numArray.update(1, 2); // nums = [1,2,5] numArray.sumRange(0, 2); // 返回 1 + 2 + 5 = 8 </pre> <p> </p> <p><strong>提示:</strong></p> <ul> <li><code>1 <= nums.length <= 3 * 10<sup>4</sup></code></li> <li><code>-100 <= nums[i] <= 100</code></li> <li><code>0 <= index < nums.length</code></li> <li><code>-100 <= val <= 100</code></li> <li><code>0 <= left <= right < nums.length</code></li> <li>调用 <code>update</code> 和 <code>sumRange</code> 方法次数不大于 <code>3 * 10<sup>4</sup></code> </li> </ul>