mirror of
https://github.com/TheAlgorithms/Python.git
synced 2025-03-26 00:19:47 +00:00
Improve prefix_sum.py (#12560)
* Update prefix_sum.py Index Validation for get_sum Raises ValueError if start or end is out of range or start > end. Handles cases where the array is empty. ✅ Empty Array Support If an empty array is passed, get_sum raises an appropriate error instead of failing unexpectedly. ✅ Optimized contains_sum Initialization Initializes sums with {0} for efficient subarray sum checking. * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update prefix_sum.py * Update prefix_sum.py * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update prefix_sum.py * Update prefix_sum.py --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Maxim Smolskiy <mithridatus@mail.ru>
This commit is contained in:
parent
edf7c372a9
commit
580273eeca
@ -30,11 +30,29 @@ class PrefixSum:
|
||||
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):
|
||||
...
|
||||
IndexError: list index out of range
|
||||
ValueError: Invalid range specified.
|
||||
>>> PrefixSum([1,2,3]).get_sum(2, 1)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: Invalid range specified.
|
||||
"""
|
||||
if not self.prefix_sum:
|
||||
raise ValueError("The array is empty.")
|
||||
|
||||
if start < 0 or end >= len(self.prefix_sum) or start > end:
|
||||
raise ValueError("Invalid range specified.")
|
||||
|
||||
if start == 0:
|
||||
return self.prefix_sum[end]
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user