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

2018-09-23 20:26

阅读:517

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


评论


亲,登录后才可以留言!