Answered step by step
Verified Expert Solution
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
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started