【Go每日一练】返回切片中的最大值和最小值

👻创作者:丶重明
👻创作时间:2025年3月7日
👻擅长领域:运维

目录

😶‍🌫️题目:

编写一个函数,接收一个整数切片,并返回切片中的最大值和最小值

😶‍🌫️要求:

  • 函数名为findMinMax
  • 输入参数为一个整数切片 []int
  • 返回值为两个整数,分别表示最小值和最大值

😶‍🌫️资源:

有一组随机生成的整数:

go 复制代码
3, 23, 43, 5436, 23, 36, 68, 443, 27

😶‍🌫️代码:

go 复制代码
package main

import "fmt"

func findMinMax(nums []int) (int, int) {
	if len(nums) == 0 {
		return 0, 0
	}
	min, max := nums[0], nums[0]
	for _, num := range nums {
		if num < min {
			min = num
		}
		if num > max {
			max = num
		}
	}
	return min, max
}

func main() {
	input := []int{3, 23, 43, 5436, 23, 36, 68, 443, 27}
	min, max := findMinMax(input)
	fmt.Printf("最大的数字是: %d\n最小的数字是: %d", max, min)
}

😶‍🌫️输出:

go 复制代码
> go run .\3.go_fmt.go
最大的数字是: 5436
最小的数字是: 3

😶‍🌫️解析:

go 复制代码
func findMinMax(nums []int) (int, int) {...}
  • 一个名为findMinMax的自定义函数,接收一个整数切片nums作为参数
  • 这个函数返回两个int整数类型的值
go 复制代码
	// len表示长度
    if len(nums) == 0 {
        return 0, 0
    }
  • 检查切片nums是否为空,如果长度=0,则返回两个0
go 复制代码
    min, max := nums[0], nums[0]
  • 初始化minmax变量,将它们都复制切片的第一个元素(切片中第一个元素用0表示)
go 复制代码
    for _, num := range nums {
        if num < min {
            min = num
        }
        if num > max {
            max = num
        }
    }
  • for循环中使用range关键字遍历nums切片中每个元素
  • _表示空白标识符,表示忽略返回的第一个值
  • 对于每个元素num,如果它小于当前的min,则更新min为num
  • 如果它大于当前的max,则更新max为num
go 复制代码
    return min, max
  • 遍历结束后,函数返回min和max,即切片中的最小值和最大值
go 复制代码
func main() {
	input := []int{3, 23, 43, 5436, 23, 36, 68, 443, 27}
	min, max := findMinMax(input)
	fmt.Printf("最大的数字是: %d\n最小的数字是: %d", max, min)
}
  • 定义一个整数切片input,并初始化一些整数
  • 调用findMinMax函数,将input切片作为参数传递给它,并将返回的最小值和最大值赋值给minmax变量
  • 然后使用fmt.Printf函数格式化输出结果
相关推荐
小羊斩肖恩1 小时前
Go性能优化深度指南:从原理到实战
开发语言·性能优化·golang
霜绛1 小时前
机器学习笔记(四)——聚类算法KNN、Kmeans、Dbscan
笔记·算法·机器学习·kmeans·聚类
晨非辰2 小时前
#C语言——学习攻略:深挖指针路线(三)--数组与指针的结合、冒泡排序
c语言·开发语言·数据结构·学习·算法·排序算法·visual studio
zzywxc7872 小时前
编程算法在金融、医疗、教育、制造业等领域的落地案例
人工智能·算法·金融·自动化·copilot·ai编程
zzywxc7872 小时前
编程算法在金融、医疗、教育、制造业的落地应用。
人工智能·深度学习·算法·机器学习·金融·架构·开源
conkl3 小时前
构建 P2P 网络与分布式下载系统:从底层原理到安装和功能实现
linux·运维·网络·分布式·网络协议·算法·p2p
Shan12053 小时前
递归算法的一些具体应用
算法
paopaokaka_luck5 小时前
婚纱摄影管理系统(发送邮箱、腾讯地图API、物流API、webSocket实时聊天、协同过滤算法、Echarts图形化分析)
vue.js·spring boot·后端·websocket·算法·echarts
愚戏师6 小时前
机器学习(重学版)基础篇(算法与模型一)
人工智能·算法·机器学习
OEC小胖胖8 小时前
渲染篇(二):解密Diff算法:如何用“最少的操作”更新UI
前端·算法·ui·状态模式·web