用go实现:在长度为 `10` 的 int32 数组中,找到第 `n` 大的数,1=< n <= 10(代码里不用考虑 n 的其他情况),以长度 5 的数组举例:\[1, 6, 3, 5, 8],传入 n=1(第一大) 返回 8,传入 n=5(第五大) 返回 1
时间: 2024-02-25 09:58:56 浏览: 119
Go语言实现的排列组合问题实例(n个数中取m个)
好的,我理解了你的问题。下面是使用 Go 语言实现的代码:
```go
package main
import (
"fmt"
"sort"
)
func main() {
arr := []int32{1, 6, 3, 5, 8}
fmt.Println(findNthLargest(arr, 1)) // 输出 8
fmt.Println(findNthLargest(arr, 5)) // 输出 1
}
func findNthLargest(arr []int32, n int) int32 {
sort.Slice(arr, func(i, j int) bool {
return arr[i] > arr[j]
})
return arr[n-1]
}
```
这里我们使用了 Go 语言内置的 `sort.Slice` 函数来对数组进行降序排序,然后返回第 `n` 大的数即可。注意数组下标是从 0 开始的,所以要返回 `arr[n-1]`。
阅读全文