Đề bài
Build a running sum: the value at position i is the sum of all numbers from position 0 through i.
Implement running_sum(numbers).
Input
numbers: The list of integers.
Output
Return the list of running totals.
Ràng buộc
0 ≤ length ≤ 100,000; totals fit in a 64-bit integer
Ví dụ
Đầu vào:
numbers = [1, 2, 3, 4]
Kết quả mong đợi:
expected = [1, 3, 6, 10]
Đầu vào:
std::vector<long long> numbers = {1, 2, 3, 4};
Kết quả mong đợi:
std::vector<long long> expected = {1, 3, 6, 10};
Đầu vào:
long[] numbers = new long[] {1, 2, 3, 4};
Kết quả mong đợi:
long[] expected = new long[] {1, 3, 6, 10};
Giải thích
Totals so far: 1, 1+2=3, 3+3=6, 6+4=10.
Đầu vào:
numbers = [5, -5, 5]
Kết quả mong đợi:
expected = [5, 0, 5]
Đầu vào:
std::vector<long long> numbers = {5, -5, 5};
Kết quả mong đợi:
std::vector<long long> expected = {5, 0, 5};
Đầu vào:
long[] numbers = new long[] {5, -5, 5};
Kết quả mong đợi:
long[] expected = new long[] {5, 0, 5};
Giải thích
Totals: 5, 0, 5.
Hướng tiếp cận
Hãy tự thử trước, sau đó mở từng gợi ý một.
Gợi ý 1
Mỗi phần tử đầu ra phụ thuộc vào tổng của tất cả phần tử trước đó và chính nó.
Gợi ý 2
Giữ một tổng tích lũy khi bạn đi qua danh sách.
Gợi ý 3
Vị trí đầu tiên chỉ cần phản ánh giá trị đầu vào đầu tiên.
Độ phức tạp mong đợi
thời gian O(n), bộ nhớ phụ O(n)
Tham khảo
Thử thách này đã được điều chỉnh cho CodeUtility. Hãy làm theo đề bài và các ràng buộc ở trên.