繁体   English   中英

这里的 return -1 是什么意思?

[英]What does return -1 here mean?

在循环回答一些求职面试问题时,我得到了这段代码,对return -1的作用感到困惑,我猜这段代码实际上是如何完成任务的。

#First Non-Repeating Integer in an Array
def firstNonRepeating(arr, n): 
  
    for i in range(n): 
        j = 0
        while(j < n): 
            if (i != j and arr[i] == arr[j]): 
                break
            j += 1
        if (j == n): 
            return arr[i] 
      
    return -1
      
# Driver code 
arr = [ 9, 4, 9, 6, 7, 4 ] 
n = len(arr) 
print(firstNonRepeating(arr, n)) 

看起来它被用作所有整数重复时的标记值,例如:

>>> a = [9, 4, 9, 4]
>>> firstNonRepeating(a, len(a))
-1

然而,这是一个糟糕的哨兵值选择,因为它也是一个完全合法的值:

>>> arr = [-1]
>>> print(firstNonRepeating(arr, len(arr)))
-1

最好提出一个异常,例如:

raise ValueError('no non-repeating integer found')

也许作者正在考虑无符号整数,它在 Python 中不存在(至少不是作为本机类型)。 还有许多其他奇怪的东西让我觉得它是由更熟悉的人写的,比如 C,而不是 Python(即,传递数组的长度,用while不是for... range循环数字,指到列表/序列作为数组,并在if测试周围加上括号)。

return -1表示数组中的每个元素都在重复

前任:

Input - 1, 1, 1
Output - -1

通常,当给定输入没有解决方案时,出于指示目的,将 -1 作为答案返回。

这里 function firstNonRepeating将在数组中所有整数至少出现两次时返回 -1。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM