Python Forum

Full Version: Product of maximum in first array and minimum in second
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
So I am practicing the following

Quote:Given two arrays of size N1 and N2 respectively, the task is to calculate the product of max element of first array and min element of second array.

https://practice.geeksforgeeks.org/probl...n-second/0

I was writing this program and got hung up on an error...

Wall
Quote:Traceback (most recent call last):
File "C:\Users\groundZero Admin\Documents\Python\arrayPracetice1.py", line 22, in <module>
y = A[i]
IndexError: list index out of range

#Given two arrays of size N1 and N2 respectively, the task is to 
#calculate the product of max element of first array and min
#element of second array.
#
#

A = [1, 50, 2, 7, 3, 8]
B = [1, 50, 2, 7, 3, 8, 75, 77, 0]

listALength = len(A)
listBLength = len(B)

#These print functions were used to test the len function on arrays during
#this study session. They're now commented out to make them inactive.
#print(listALength)
#print(listBLength)

#Take the length of the array - 1 to increment the list via a loop

x = A[0]
for i in A:
    y = A[i]
    if y > x:
        x = y

print(x)
Please help me! Thank you!
The "i" in your line for i in A: is not an index as you have probably expected. It is the element of A accessed in a single iteration of for loop. Try this:
for i in A:
    print(i)
For getting indexes you can use enumerate. Here is an example:
my_list = ['one', 'two', 'three']
for i, number in enumerate(my_list):
    print(i, number)
As a side note, you may want to get yourself familiar with min() and max() Python functions.
Also, array in Python is called list, if you care about avoiding "foul language" ;P
Awesome, awesome, awesome! Dance Thank you!

Here is the functional code, now let's add min() and max()... or maybe tomorrow morning as it's getting pretty late here in the Midwest.

#Given two Lists of size N1 and N2 respectively, the task is to 
#calculate the product of max element of first List and min
#element of second List.

A = [1, 50, 2, 7, 3, 8]
B = [1, 50, 2, 7, 3, 8, 75, 77, 0]

listALength = len(A)
listBLength = len(B)

x = A[0]
for i, number in enumerate(A):
    y = A[i]
    if y > x:
        x = y

print(x)


Okay, with min() and max().

#Given two Lists of size N1 and N2 respectively, the task is to 
#calculate the product of max element of first List and min
#element of second List.
A = [1, 50, 2, 7, 3, 8]
B = [1, 50, 2, 7, 3, 8, 75, 77, 0]
print(min(B) + max(A))
Code looks much nicer/shorter. Except the task ultimately requires a product, not sum of those elements, if I understood right =)
(Jan-19-2018, 07:08 AM)j.crater Wrote: [ -> ]Code looks much nicer/shorter. Except the task ultimately requires a product, not sum of those elements, if I understood right =)

Yes indeed you are correct! I guess I should read more carefully! Thank you again for your help, I will definitely post some more code onto the forum when I find another issue I am hung up on!
No problem, we are glad to help! =)
Beside posting when you hit an obstacle, feel free to also post in Completed Scripts/Snippets subforum, if you would like to share your working code and get some feedback for improvement ;)
Quote:Given two arrays of size N1 and N2 respectively, the task is to calculate the product of max element of first array and min element of second array.
>>> A = [1, 50, 2, 7, 3, 8]
>>> B = [1, 50, 2, 7, 3, 8, 75, 77, 0]
>>> max(A) * min(B)
0
>>>
I guess that is alright. Example on the link Thethispointer provided even has a negative number in B list. So result can end up negative as well.
>>> B = [1, 50, 2, 7, 3, 8, 75, 77, 0, -5]
>>> max(A) * min(B)
-250
>>>
(Jan-19-2018, 04:44 PM)j.crater Wrote: [ -> ]No problem, we are glad to help! =)
Beside posting when you hit an obstacle, feel free to also post in Completed Scripts/Snippets subforum, if you would like to share your working code and get some feedback for improvement ;)
Yeah, I will do this!

(Jan-19-2018, 05:23 PM)Larz60+ Wrote: [ -> ]
Quote:Given two arrays of size N1 and N2 respectively, the task is to calculate the product of max element of first array and min element of second array.
>>> A = [1, 50, 2, 7, 3, 8]
>>> B = [1, 50, 2, 7, 3, 8, 75, 77, 0]
>>> max(A) * min(B)
0
>>>
Thank you! This is accurate