Go语言算法之寻找数组第二大元素的方法
作者:books1958 时间:2023-06-24 16:19:03
本文实例讲述了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语言,数组,方法
0
投稿
猜你喜欢
列举Python中吸引人的一些特性
2023-12-17 03:25:57
python 浮点数四舍五入需要注意的地方
2021-11-04 04:37:56
java代码实现mysql分表操作(用户行为记录)
2024-01-17 22:57:09
PyTorch 解决Dataset和Dataloader遇到的问题
2023-10-14 04:37:50
vue-week-picker实现支持按周切换的日历
2024-04-30 10:16:23
详解Python查找谁删了你的微信
2021-01-02 02:32:02
BootstrapTable+KnockoutJS相结合实现增删改查解决方案(三)两个Viewmodel搞定增删改查
2024-04-28 09:36:56
python处理emoji表情(两个函数解决两者之间的联系)
2022-12-03 18:51:12
深入理解Python中的元类(metaclass)
2021-02-25 22:10:00
MySQL中连接查询和子查询的问题
2024-01-19 04:27:32
Python 列表和字典常踩坑即解决方案
2021-05-01 17:45:25
Javascript学习第一季 二
2008-06-24 18:20:00
Pytorch 如何训练网络时调整学习率
2022-01-31 20:08:48
利用Python开发一个自动答题程序
2022-12-31 10:33:16
asp数组使用特法
2009-05-11 12:43:00
JS数组遍历中for,for in,for of,map,forEach各自的使用方法与优缺点
2024-05-02 16:15:45
微信跳一跳php代码实现
2024-06-05 09:46:20
Python生成pdf目录书签的实例方法
2023-10-11 15:43:21
利用nohup来开启python文件的方法
2023-05-08 07:51:29
Python下Fabric的简单部署方法
2023-11-08 07:17:11