华域联盟 Golang Go语言算法之寻找数组第二大元素的方法

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

本文实例讲述了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语言程序设计有所帮助。

本文由 华域联盟 原创撰写:华域联盟 » Go语言算法之寻找数组第二大元素的方法

转载请保留出处和原文链接:https://www.cnhackhy.com/109924.htm

本文来自网络,不代表华域联盟立场,转载请注明出处。

作者: sterben

发表回复

联系我们

联系我们

2551209778

在线咨询: QQ交谈

邮箱: [email protected]

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们