Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions DIRECTORY.md
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,7 @@
* [Binary Search Tree Recursive](data_structures/binary_tree/binary_search_tree_recursive.py)
* [Binary Tree Mirror](data_structures/binary_tree/binary_tree_mirror.py)
* [Binary Tree Node Sum](data_structures/binary_tree/binary_tree_node_sum.py)
* [Binary Tree Path Sum](data_structures/binary_tree/binary_tree_path_sum.py)
* [Binary Tree Traversals](data_structures/binary_tree/binary_tree_traversals.py)
* [Diff Views Of Binary Tree](data_structures/binary_tree/diff_views_of_binary_tree.py)
* [Fenwick Tree](data_structures/binary_tree/fenwick_tree.py)
Expand Down Expand Up @@ -285,6 +286,7 @@
* [Bitmask](dynamic_programming/bitmask.py)
* [Catalan Numbers](dynamic_programming/catalan_numbers.py)
* [Climbing Stairs](dynamic_programming/climbing_stairs.py)
* [Combination Sum Iv](dynamic_programming/combination_sum_iv.py)
* [Edit Distance](dynamic_programming/edit_distance.py)
* [Factorial](dynamic_programming/factorial.py)
* [Fast Fibonacci](dynamic_programming/fast_fibonacci.py)
Expand Down Expand Up @@ -595,6 +597,7 @@
* [P Series](maths/series/p_series.py)
* [Sieve Of Eratosthenes](maths/sieve_of_eratosthenes.py)
* [Sigmoid](maths/sigmoid.py)
* [Sigmoid Linear Unit](maths/sigmoid_linear_unit.py)
* [Signum](maths/signum.py)
* [Simpson Rule](maths/simpson_rule.py)
* [Sin](maths/sin.py)
Expand Down Expand Up @@ -660,6 +663,7 @@
* [Lru Cache](other/lru_cache.py)
* [Magicdiamondpattern](other/magicdiamondpattern.py)
* [Maximum Subarray](other/maximum_subarray.py)
* [Maximum Subsequence](other/maximum_subsequence.py)
* [Nested Brackets](other/nested_brackets.py)
* [Password Generator](other/password_generator.py)
* [Scoring Algorithm](other/scoring_algorithm.py)
Expand Down Expand Up @@ -1107,6 +1111,7 @@
* [Fetch Jobs](web_programming/fetch_jobs.py)
* [Fetch Quotes](web_programming/fetch_quotes.py)
* [Fetch Well Rx Price](web_programming/fetch_well_rx_price.py)
* [Get Amazon Product Data](web_programming/get_amazon_product_data.py)
* [Get Imdb Top 250 Movies Csv](web_programming/get_imdb_top_250_movies_csv.py)
* [Get Imdbtop](web_programming/get_imdbtop.py)
* [Get Top Billioners](web_programming/get_top_billioners.py)
Expand Down
42 changes: 42 additions & 0 deletions other/maximum_subsequence.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
from collections.abc import Sequence


def max_subsequence_sum(nums: Sequence[int] | None = None) -> int:
"""Return the maximum possible sum amongst all non - empty subsequences.

Raises:
ValueError: when nums is empty.

>>> max_subsequence_sum([1,2,3,4,-2])
10
>>> max_subsequence_sum([-2, -3, -1, -4, -6])
-1
>>> max_subsequence_sum([])
Traceback (most recent call last):
. . .
ValueError: Input sequence should not be empty
>>> max_subsequence_sum()
Traceback (most recent call last):
. . .
ValueError: Input sequence should not be empty
"""
if nums is None or not nums:
raise ValueError("Input sequence should not be empty")

ans = nums[0]
for i in range(1, len(nums)):
num = nums[i]
ans = max(ans, ans + num, num)

return ans


if __name__ == "__main__":
import doctest

doctest.testmod()

# Try on a sample input from the user
n = int(input("Enter number of elements : ").strip())
array = list(map(int, input("\nEnter the numbers : ").strip().split()))[:n]
print(max_subsequence_sum(array))