1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
Alex
3 years ago
12

A contiguous subsequence of a list S is a subsequence made up of consecutive elements of S. For example, if S is 5,15,-30,10,-5,

40,10 then 5,15,-30 is a contiguous subsequence but 5,15,40 is not.
1. Give a linear-time algorithm for the following task:
Input: A list of numbers, A(1), . . . , A(n).
Output: The contiguous subsequence of maximum sum (a subsequence of length zero has sum zero).
For the preceding example, the answer would be 10,-5,40,10 with a sum of 55.
Computers and Technology
1 answer:
Sindrei [870]3 years ago
4 0

Answer:

We made use of the dynamic programming method to solve a linear-time algorithm which is given below in the explanation section.

Explanation:

Solution

(1) By making use of the  dynamic programming, we can solve the problem in linear time.

Now,

We consider a linear number of sub-problems, each of which can be solved using previously solved sub-problems in constant time, this giving a running time of O(n)

Let G[t] represent the sum of a maximum sum contiguous sub-sequence ending exactly at index t

Thus, given that:

G[t+1] = max{G[t] + A[t+1] ,A[t+1] } (for all   1<=t<= n-1)

Then,

G[0] = A[0].

Using the above recurrence relation, we can compute the sum of the optimal sub sequence for array A, which would just be the maximum over G[i] for 0 <= i<= n-1.

However, we are required to output the starting and ending indices of an optimal sub-sequence, we would use another array V where V[i] would store the starting index for a maximum sum contiguous sub sequence ending at index i.

Now the algorithm would be:

Create arrays G and V each of size n.

G[0] = A[0];

V[0] = 0;

max = G[0];

max_start = 0, max_end = 0;

For i going from 1 to n-1:

// We know that G[i] = max { G[i-1] + A[i], A[i] .

If ( G[i-1] > 0)

G[i] = G[i-1] + A[i];

V[i] = V[i-1];

Else

G[i] = A[i];

V[i] = i;

If ( G[i] > max)

max_start = V[i];

max_end = i;

max = G[i];

EndFor.

Output max_start and max_end.

The above algorithm takes O(n) time .

You might be interested in
A(n) _______ gate provides an output of 1 if either or both inputs are 1.
Vlad1618 [11]

Answer:

OR

Explanation:

1 OR 1 OR both

8 0
3 years ago
Write a well-commented Java program that answers the following questions in complete sentences such that the reader does not hav
pickupchik [31]

Answer:

import java.util.Scanner;

import javax.swing.JOptionPane;

public class labExercise1

{

public static void main(String[] args)

{

int sum= 0;

double interestRate = 5.0;

double monthlyPayment=0;

double totalPayment=0;

String input = JOptionPane.showInputDialog(null,"Enter the loan amount: ($)","Lab Exercise 1", 2);

double loanAmount = Double.parseDouble(input);

String input1 = JOptionPane.showInputDialog(null,"Enter the loan period(years):","Lab Exercise 1",2);

double numberOfYears = Double.parseDouble(input1);

JOptionPane.showConfirmDialog(null,"The loan amount is $" + loanAmount + ", and the loan duration is " + numberOfYears + "year(s). Continue?","Lab Exercise 1",2);

String s1 = null;

System.out.print("Interest Rate(%) Monthly Payment($) Total Payment($) ");

s1 = "Interest Rate(%) Monthly Payment($) Total Payment($) ";

while (interestRate <= 8.0)

{

double monthlyInterestRate = interestRate / 1200;

monthlyPayment= loanAmount * monthlyInterestRate / (1 - 1 / Math.pow(1 + monthlyInterestRate, numberOfYears * 12));

totalPayment = monthlyPayment * numberOfYears * 12;

s1 = s1 + String.format("%.3f%30.2f %40.2f ",interestRate, monthlyPayment, totalPayment) + " ";

System.out.println(s1);

interestRate = interestRate + 1.0 / 8;

}

//s1 = String.format("%16.3f%19.2f%19.2f ",interestRate, monthlyPayment, totalPayment);

System.out.println(s1);

JOptionPane.showMessageDialog(null,s1,"Lab Exercise 1",3);

}

}

Explanation:

  • Take the loan amount and period as inputs from the user.
  • Calculate the monthly interest rate by dividing the interest rate with 1200.
  • Calculate total payment using the following the formula:
  • totalPayment = monthlyPayment * numberOfYears * 12;
6 0
3 years ago
Which similar computer network components connect multiple devices?
Firlakuza [10]
That computer network component is router. It's possible to connect printer to it. Other computer and any other devices.
8 0
3 years ago
What type of photograph records what happens over a period of time?
aniked [119]
The answer would be b
7 0
3 years ago
Read 2 more answers
Which game console was the first to use the blue ray side as a distribution medium ???
lesantik [10]
The answer is C, The Xbox 360 used some sort of other disc instead of Blu Ray and the PS3 was (I believe) the first gaming console that accepted Blu Ray.
8 0
3 years ago
Read 2 more answers
Other questions:
  • What car dealership websites did you use to conduct your research?​
    8·1 answer
  • Suppose that a computer virus infects your computer and corrupts the files you were going to submit for your current homework as
    12·1 answer
  • Given an int variable n that has already been declared and initialized to a positive value, and another int variable j that has
    9·1 answer
  • Kyle wants to access his school’s home page. How can he do this?
    8·2 answers
  • To switch from one open document to another, press _____.
    6·1 answer
  • Apex
    5·2 answers
  • Read the code snippet below and determine which markup language it is:
    5·1 answer
  • What is the process called when programmers look for and fix errors in code? Analysis Debug Document Error check
    6·2 answers
  • Compare gigabytes GB, kilobytes and terabytes.​
    11·1 answer
  • How is a WAN different from a LAN?
    10·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!