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语言算法之寻找数组第二大元素的方法就介绍到这了。你不能决定生命的长短,但你可以控制它的质量;你不能左右天气,但你可以改变心情;你不能改变容貌,但你可以展现笑容;你不能控制他人,但你可以掌握自己;你不能预知明天,但你可以掌握今天;你不能样样胜利,但你可以事事尽心。更多相关Go语言算法之寻找数组第二大元素的方法内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!