gpt4 book ai didi

algorithm - 惯用 Go 中 set 的最小值

转载 作者:IT王子 更新时间:2023-10-29 01:55:36 27 4
gpt4 key购买 nike

如何在 go 中编写返回集合最小值的函数?我不只是在寻找解决方案(我知道我可以在遍历第一个元素时只初始化最小值,然后设置一个我初始化最小值的 bool 变量),而是一个惯用的解决方案。由于 go 没有原生集,假设我们有一个 map[Cell]bool

最佳答案

Map 是 Go 中实现集合的惯用方式。惯用代码使用 bool 或 struct{} 作为映射的值类型。后者使用的存储空间较少,但需要在键盘上输入更多内容才能使用。

假设单元格的最大值为 maxCell,则此函数将计算最小值:

func min(m map[Cell]bool) Cell {
min := maxCell
for k := range m {
if k < min {
min = k
}
}
return min
}

如果 Cell 是数字类型,那么 maxCell 可以设置为 math constants 之一.

任何使用 map 的解决方案都需要对键进行循环。

你可以保留一个heap除了 map 找到一个最小值。这将需要更多的存储空间和代码,但效率会更高,具体取决于集合的大小和调用最小函数的频率。

关于algorithm - 惯用 Go 中 set 的最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26063380/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com