Skip to content

Instantly share code, notes, and snippets.

@binhngoc17
Created November 12, 2014 14:01
Show Gist options
  • Save binhngoc17/d7dc8ef028850ba92d8a to your computer and use it in GitHub Desktop.
Save binhngoc17/d7dc8ef028850ba92d8a to your computer and use it in GitHub Desktop.
Find second largest element of a list - Python
def find_second_largest(arr):
if len(arr) < 2:
return None
largest = max(arr[0], arr[1])
sec_largest = min(arr[0], arr[1])
for item in arr[2:]:
if item > largest:
sec_largest = largest
largest = item
elif item <= largest and item > sec_largest:
sec_largest = item
return sec_largest
assert find_second_largest([1, 2, 3, 4, 5, 6, 7]) == 6
assert find_second_largest([7, 6, 5, 4, 3, 2, 1]) == 6
assert find_second_largest([7, 4, 3, 16, 5, 2, 9]) == 9
assert find_second_largest([2, 2, 2, 2]) == 2
assert find_second_largest([2, 2, 2, 3]) == 2
assert find_second_largest([2]) == None
assert find_second_largest([]) == None
assert find_second_largest([1, 2]) == 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment