Find the second largest number in an unsorted array in a single traversal.
Treat "second largest" as the second distinct largest value. Return None if the array contains fewer than two distinct values.
Implement def second_largest(nums):, accepting a list of integers and returning an integer or None.
def second_largest(nums):