站长资源脚本专栏
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语言使用MySql的方法
最新资源
- 原音母版1:1直刻《民谣精逊[低速原抓WAV+CUE]
- 原音母版1:1直刻《卓依婷精选集》[低速原抓WAV+
- 【佛之吧沙发】VA-BuddhaBar-BestOf2byRavin(FL
- [ABC唱片]-《雪莉—蓝》[SACD-008][SACD][WAV+C
- 黎瑞恩.2002-理想的日子精选2CD【环球】【WAV+C
- 【驰放沙发(J)】VA-2024-WinterTime,Vol.12(FLA
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓
- 韩红《青藏高原+红+韩红精选集》3CD[WAV分轨][1
- 高胜美《经典金选》1991-1994 4CD[WAV整轨][1.
- 【迷幻电音】AstralWaves-2023-Singles,Remixes