data_structures.arrays.prefix_sum ================================= .. py:module:: data_structures.arrays.prefix_sum .. autoapi-nested-parse:: Author : Alexander Pantyukhin Date : November 3, 2022 Implement the class of prefix sum with useful functions based on it. Classes ------- .. autoapisummary:: data_structures.arrays.prefix_sum.PrefixSum Module Contents --------------- .. py:class:: PrefixSum(array: list[int]) .. py:method:: contains_sum(target_sum: int) -> bool The function returns True if array contains the target_sum, False otherwise. Runtime : O(n) Space: O(n) >>> PrefixSum([1,2,3]).contains_sum(6) True >>> PrefixSum([1,2,3]).contains_sum(5) True >>> PrefixSum([1,2,3]).contains_sum(3) True >>> PrefixSum([1,2,3]).contains_sum(4) False >>> PrefixSum([1,2,3]).contains_sum(7) False >>> PrefixSum([1,-2,3]).contains_sum(2) True .. py:method:: get_sum(start: int, end: int) -> int The function returns the sum of array from the start to the end indexes. Runtime : O(1) Space: O(1) >>> PrefixSum([1,2,3]).get_sum(0, 2) 6 >>> PrefixSum([1,2,3]).get_sum(1, 2) 5 >>> PrefixSum([1,2,3]).get_sum(2, 2) 3 >>> PrefixSum([]).get_sum(0, 0) Traceback (most recent call last): ... ValueError: The array is empty. >>> PrefixSum([1,2,3]).get_sum(-1, 2) Traceback (most recent call last): ... ValueError: Invalid range specified. >>> PrefixSum([1,2,3]).get_sum(2, 3) Traceback (most recent call last): ... ValueError: Invalid range specified. >>> PrefixSum([1,2,3]).get_sum(2, 1) Traceback (most recent call last): ... ValueError: Invalid range specified. .. py:attribute:: prefix_sum