当前位置: 首页 > 编程笔记 >

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

商飞航
2023-03-14
本文向大家介绍Go语言算法之寻找数组第二大元素的方法,包括了Go语言算法之寻找数组第二大元素的方法的使用技巧和注意事项,需要的朋友参考一下

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

 类似资料:
  • 本文向大家介绍C#递归算法寻找数组中第K大的数,包括了C#递归算法寻找数组中第K大的数的使用技巧和注意事项,需要的朋友参考一下 1.概述   国人向来喜欢论资排辈的,每个人都想当老大,实在当不成,当个老二,老三,老K也不错,您一定看过这样的争论: 两个人吵架,一个人非常强势,另外一个忍受不住了便说:"你算老几呀?",下面就通过这篇文章就是要解决找出老几的问题! 2.应用场景   在向量V[firs

  • 本文向大家介绍C语言找出数组中的特定元素的算法解析,包括了C语言找出数组中的特定元素的算法解析的使用技巧和注意事项,需要的朋友参考一下      问题描述:一个int数组,里面数据无任何限制,要求求出所有这样的数a[i],其左边的数都小于等于它,右边的数都大于等于它。能否只用一个额外数组和少量其它空间实现。       思路:如果能用两个辅助数组,那么相对来说简单一点,可定义数组Min和数组Max

  • 本文向大家介绍Objective-C语言找出数组中的元素数,包括了Objective-C语言找出数组中的元素数的使用技巧和注意事项,需要的朋友参考一下 示例            

  • 本文向大家介绍GO语言基础之数组,包括了GO语言基础之数组的使用技巧和注意事项,需要的朋友参考一下 1.申明一个数组 var a[2] int 或者 a:=[2]int{1,2} 2.数组索引 数组就是索引的来建立如下图 我们再来一个测试 3.go语言可以自动计算数组的长度,譬如你知道数组有几个可以如下申明 4.指针数组 可以用new关键字申明 多维数组跟其他语言一样 冒泡算法之go语言版

  • Go 函数 Go 语言中同时有函数和方法。一个方法就是一个包含了接受者的函数,接受者可以是命名类型或者结构体类型的一个值或者是一个指针。所有给定类型的方法属于该类型的方法集。语法格式如下: func (variable_name variable_data_type) function_name() [return_type]{ /* 函数体*/ } 下面定义一个结构体类型和该类型的一个

  • Appium 支持 WebDriver 定位策略的子集: 通过 "class" 查找 (例如, UI 组件的类型) 通过 "xpath" 查找 (例如, 一个元素的路径以抽象的方式去表达,具有一定的约束) 你可以查看关于以上的列表,选择器策略 (English)。 Appium 还额外支持部分 Mobile JSON Wire Protocol 的定位策略。 -ios predicate stri

  • 本文向大家介绍Go语言获取数组长度的方法,包括了Go语言获取数组长度的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Go语言获取数组长度的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的Go语言程序设计有所帮助。

  • 问题内容: 我需要知道在对象数组中查找第二大元素的方法。例如 如果存在Book类的一系列对象,这些对象的属性如书名,价格,库存数量 我们如何列出价格第二高的书以及其他属性,例如名称和库存数量 问题答案: 做一个的从它,它的排序使用,并采取元素索引1。