在一个游戏滚动骰子到一个随机整数,我必须返回最大金额在最后。每一卷都有对应于滚动数的点。我见过一些人用-1作为最大值的起始变量,为什么会这样?
发布于 2022-09-30 14:45:05
max变量被赋值为-1,因为在大多数场景中,我们必须找到最大值的元素是正的。
例如,如果我有一个列表
a = [1,2,3,8,5]我必须找到最大值,我可以声明max变量为-1。
max_variable = -1然后循环遍历列表,并继续检查元素是否大于max_variable。因此,由于该列表中的每个变量都将大于我们定义的max_varible (-1),该算法将覆盖所有边缘情况场景(例如,如果列表只有一个元素,而这个元素也是0)。
发布于 2022-09-30 14:45:41
-1通常用作最大值计算的起点,因为通常有一个条件语句与最大值相比较,而负数很少是最大值。
然而,在负数比较的情况下,最大值实际上不应该是-1,而应该是“所有预期比较值的最低起始值”。
以此为例:
current_max = -1
if(x > current_max):
current_max = x如果x是一个正数,则当前的最大值将被设置为一个新值。
假设有一个数据集,如下所示:
data_set = [-100000, -100, -10]然后,将最大值设置为-1的起点不再有意义,因为-1大于数据集中的每个值,但它本身并不是数据集的一部分。
希望这突出了确保起始最大值低于其他数据集的需要--以便在比较中保证数据集的每个成员都会得到适当的比较。
但是,由于您使用的是python,所以最好在python中使用内置函数:
max()有关这方面的更多信息可在这里找到:
https://www.codingem.com/python-how-to-find-the-largest-number-in-a-list/
https://stackoverflow.com/questions/73910407
复制相似问题