How to find the second largest number in int array with Go

1 Answer

0 votes
package main

import (
	"fmt"
	"math"
)

func secondLargestNumberInArray(arr []int) (int, error) {
	if len(arr) < 2 {
		return 0, fmt.Errorf("list must contain at least two numbers")
	}

	first, second := math.MinInt64, math.MinInt64

	for _, num := range arr {
		if num > first {
			second = first
			first = num
		} else if num > second && num != first {
			second = num
		}
	}

	return second, nil
}

func main() {
	arr := []int{3, 14, 4, 1, 5, 90, 2, 6, 85, 7}
	
	second, err := secondLargestNumberInArray(arr)
	
	if err != nil {
		fmt.Println("Error:", err)
	} else {
		fmt.Println("The second largest number is:", second)
	}
}


/*
run:

The second largest number is: 85

*/

 



answered Jan 19, 2025 by avibootz
...