当前位置 博文首页 > Go语言算法之寻找数组第二大元素的方法

    Go语言算法之寻找数组第二大元素的方法

    作者:books1958 时间:2021-02-09 12:26

    本文实例讲述了Go语言算法之寻找数组第二大元素的方法。分享给大家供大家参考。具体如下:

    该算法的原理是,在遍历数组的时,始终记录当前最大的元素和第二大的元素。示例代码如下:

    复制代码 代码如下:
    package demo01 
     
    import ( 
        "fmt" 

     
    func NumberTestBase() { 
        fmt.Println("This is NumberTestBase") 
     
        nums := []int{12, 24, 2, 5, 13, 8, 7} 
        fmt.Println("nums:", nums) 
        secondMax := getSecondMaxNum(nums) 
        fmt.Println("secondMax=", secondMax) 

     
    func getSecondMaxNum(nums []int) int { 
        length := len(nums) 
        if length == 0 { 
            panic("Slice nums cannot be 0-size.") 
        } 
     
        if length == 1 { 
            return nums[0] 
        } 
     
        var max, secondMax int 
        if nums[0] > nums[1] { 
            max = nums[0] 
            secondMax = nums[1] 
        } else { 
            max = nums[1] 
            secondMax = nums[0] 
        } 
     
        for i := 2; i < len(nums); i++ { 
            if nums[i] > secondMax { 
                if nums[i] <= max { 
                    secondMax = nums[i] 
                } else { 
                    secondMax, max = max, nums[i] 
                } 
            } 
        } 
        return secondMax 
    }

    希望本文所述对大家的Go语言程序设计有所帮助。

    js
    下一篇:没有了