Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Improve the following function so the time complexity will be reduced from O(n*n*n) to O(n*n) def naiveMaxSubarray(arr:list)->list: # two nested loops to compare all possible

Improve the following function so the time complexity will be reduced from O(n*n*n) to O(n*n)

def naiveMaxSubarray(arr:list)->list:

# two nested loops to compare all possible pairs

# assume the arr is not empty. Otherwise, there is no max subarray

currentMax = arr[0]

i_max, j_max = 0, 0

n = len(arr)

for i in range(n):

# TODO: get rid of the sum function for better time complexity

for j in range(i,n):

if sum(arr[i:j]) > currentMax:

currentMax = sum(arr[i:j])

i_max, j_max = i, j

return [i_max, j_max-1]

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Database Design Application Development And Administration

Authors: Michael V. Mannino

4th Edition

0615231047, 978-0615231044

More Books

Students also viewed these Databases questions