How to resolve the algorithm Greatest subsequential sum step by step in the 11l programming language

Published on 12 May 2024 09:40 PM

How to resolve the algorithm Greatest subsequential sum step by step in the 11l programming language

Table of Contents

Problem Statement

Given a sequence of integers, find a continuous subsequence which maximizes the sum of its elements, that is, the elements of no other single subsequence add up to a value larger than this one.

An empty subsequence is considered to have the sum of   0;   thus if all elements are negative, the result must be the empty sequence.

Let's start with the solution:

Step by Step solution about How to resolve the algorithm Greatest subsequential sum step by step in the 11l programming language

Source code in the 11l programming language

F maxsumseq(sequence)
   V (start, end, sum_start) = (-1, -1, -1)
   V (maxsum_, sum_) = (0, 0)
   L(x) sequence
      sum_ += x
      I maxsum_ < sum_
         maxsum_ = sum_
         (start, end) = (sum_start, L.index)
      E I sum_ < 0
         sum_ = 0
         sum_start = L.index
   assert(maxsum_ == sum(sequence[start + 1 .. end]))
   R sequence[start + 1 .. end]

print(maxsumseq([-1, 2, -1]))
print(maxsumseq([-1, 2, -1, 3, -1]))
print(maxsumseq([-1, 1, 2, -5, -6]))
print(maxsumseq([-1, -2, 3, 5, 6, -2, -1, 4, -4, 2, -1]))

  

You may also check:How to resolve the algorithm Higher-order functions step by step in the Nanoquery programming language
You may also check:How to resolve the algorithm Draw a sphere step by step in the J programming language
You may also check:How to resolve the algorithm Order two numerical lists step by step in the Rascal programming language
You may also check:How to resolve the algorithm Sorting algorithms/Insertion sort step by step in the Euphoria programming language
You may also check:How to resolve the algorithm Successive prime differences step by step in the D programming language