Menu
CoddyTech

Range Sum Query

Bạn có một mảng số nguyên nums không bao giờ thay đổi và một danh sách queries. Mỗi truy vấn là một cặp [left, right] gồm các chỉ số bắt đầu từ 0, yêu cầu tính nums[left] + nums[left+1] + ... + nums[right], bao gồm cả hai đầu mút. Hãy trả về các đáp án theo cùng thứ tự với các truy vấn.

Hàm

sumRange(nums: integer-array, queries: integer-2d-array) → integer-array
numsinteger-array
mảng số nguyên, giống nhau cho mọi truy vấn
queriesinteger-2d-array
các khoảng cần cộng lại, mỗi khoảng là một cặp [left, right] với left ≤ right
Trả vềinteger-array
Tổng của mỗi khoảng, mỗi truy vấn một khoảng, theo thứ tự truy vấn

Ràng buộc

  • 1 ≤ nums.length ≤ 104
  • -104 ≤ nums[i] ≤ 104
  • 1 ≤ queries.length ≤ 1500
  • 0 ≤ left ≤ right < nums.length cho mọi truy vấn [left, right]

Ví dụ

Đầu vào
nums = [3, -2, 5, 1, -4, 6]queries = [[0, 2], [1, 4], [3, 3]]
Đầu ra
[6, 0, 1]
Giải thích
Các chỉ số từ 0 đến 2 chứa 3 + (-2) + 5 = 6. Các chỉ số từ 1 đến 4 chứa -2 + 5 + 1 + (-4) = 0. Phạm vi [3, 3] chỉ chứa giá trị 1.
challenge icon

Câu hỏi mở rộng

Nếu các số tạo thành một lưới và mỗi truy vấn yêu cầu tính tổng của một hình chữ nhật, bạn sẽ mở rộng tổng tiền tố như thế nào để trả lời mỗi truy vấn trong thời gian hằng số?

Đặt lại code
def sumRange(nums, queries):
    # Viết code ở đây

Kiểm thử #1

Kiểm thử #2

Đối số

nums = [3, -2, 5, 1, -4, 6]
queries = [[0, 2], [1, 4], [3, 3]]

Đầu ra mong đợi

[6, 0, 1]