Go语言算法之寻找数组第二大元素的方法
本文实例讲述了Go语言算法之寻找数组第二大元素的方法。分享给大家供大家参考。具体如下:
该算法的原理是,在遍历数组的时,始终记录当前最大的元素和第二大的元素。示例代码如下:
packagedemo01 import( "fmt" ) funcNumberTestBase(){ fmt.Println("ThisisNumberTestBase") nums:=[]int{12,24,2,5,13,8,7} fmt.Println("nums:",nums) secondMax:=getSecondMaxNum(nums) fmt.Println("secondMax=",secondMax) } funcgetSecondMaxNum(nums[]int)int{ length:=len(nums) iflength==0{ panic("Slicenumscannotbe0-size.") } iflength==1{ returnnums[0] } varmax,secondMaxint ifnums[0]>nums[1]{ max=nums[0] secondMax=nums[1] }else{ max=nums[1] secondMax=nums[0] } fori:=2;i<len(nums);i++{ ifnums[i]>secondMax{ ifnums[i]<=max{ secondMax=nums[i] }else{ secondMax,max=max,nums[i] } } } returnsecondMax }
希望本文所述对大家的Go语言程序设计有所帮助。