Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 4fe0e73

Browse files
author
Amogh Singhal
authored
Update adjacentElementProduct.py
1 parent 6bb038c commit 4fe0e73

File tree

1 file changed

+37
-12
lines changed

1 file changed

+37
-12
lines changed

‎adjacentElementProduct.py‎

Lines changed: 37 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,40 @@
1-
#Given an array of integers,
2-
#find the pair of adjacent elements
3-
#that has the largest product and
4-
#return that product.
1+
# Given an array of integers, find the pair of adjacent elements
2+
# that has the largest product and return that product.
3+
4+
# Approach 1: (Brute Force) - Check all the pairs in the list and then return the maximum pair
5+
# Time Complexity: O(N^2)
6+
7+
def adjacentElementProductBF(inputArray):
8+
largestProduct = -999999
9+
10+
# for sanity check, assert if array contains at least 2 elements
11+
if len(inputArray) < 2:
12+
print("No pairs exists")
13+
return -1
14+
15+
for i in range(0, len(inputArray)):
16+
for j in range(i+1, len(inputArray)):
17+
currentProduct = inputArray[i]*inputArray[j]
18+
19+
if currentProduct > largestProduct:
20+
largestProduct = currentProduct
21+
22+
return largestProduct
23+
24+
# Approach 2: (Sort & Pick Last Pair) - Sort the list and then pick the last two numbers
25+
# Caveat: All elements must be positive
26+
# Time Complexity: O(Nlog(N))
27+
28+
def adjacentElementsProductSort(inputArray):
29+
size = len(inputArray)
30+
31+
if size < 2:
32+
print("No Pairs exist")
33+
return -1
34+
35+
sortedArray = sorted(inputArray)
36+
return sortedArray[-1] * sortedArray[-2]
37+
538

639
def adjacentElementsProduct(inputArray):
740

@@ -24,11 +57,3 @@ def adjacentElementsProduct(inputArray):
2457

2558
#Alternate solution
2659
#return max([inputArray[i]*inputArray[i+1] for i in range(0, int(len(inputArray)-1))])
27-
28-
29-
30-
31-
32-
33-
34-

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /