Second Largest Number

Second Largest Number

January 1, 2024
easy

Problem #

Given an array of integers, write an algorithm that returns the second largest number in the array. If there is no second largest number, return -1.

Solution #

Here’s the Python code to find the second largest number in an array of integers:

def secondLargest(nums):
    """
    Find the second largest number in an array of integers.

    Args:
    nums (List[int]): The array of integers.

    Returns:
    int: The second largest number in the array, or -1 if it doesn't exist.
    """
    if len(nums) < 2:
        return -1

    first = second = float('-inf')

    for num in nums:
        if num > first:
            second = first
            first = num
        elif first > num > second:
            second = num

    return second if second != float('-inf') else -1

# Example usage
array = [3, 5, 2, 5, 6, 9, 1]
second_largest_num = secondLargest(array)
print(second_largest_num)

This code defines the function secondLargest, which iterates through the array nums and keeps track of the largest and second largest numbers. The function returns the second largest number if it exists; otherwise, it returns -1. For the example array [3, 5, 2, 5, 6, 9, 1], the function correctly identifies 6 as the second largest number.