本文实例讲述了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语言程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#nhooo.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。