您现在的位置是:网站首页> 编程资料编程资料
Go语言算法之寻找数组第二大元素的方法_Golang_
2023-05-26
342人已围观
简介 Go语言算法之寻找数组第二大元素的方法_Golang_
本文实例讲述了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
}
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语言实现冒泡排序、选择排序、快速排序及插入排序的方法_Golang_
- Go语言服务器开发实现最简单HTTP的GET与POST接口_Golang_
- Go语言服务器开发之客户端向服务器发送数据并接收返回数据的方法_Golang_
- Go语言服务器开发之简易TCP客户端与服务端实现方法_Golang_
- Go语言使用sort包对任意类型元素的集合进行排序的方法_Golang_
- Go语言中接口组合的实现方法_Golang_
- Go语言使用组合的方式实现多继承的方法_Golang_
- Go语言中普通函数与方法的区别分析_Golang_
- Go语言中struct的匿名属性特征实例分析_Golang_
- Go语言中append函数用法分析_Golang_
