面试题:定义一个数组长度是49,在里边随机放入1到50中的49个,设计一种最快的算法,求出那个数没被放入。

面试题:定义一个数组长度是49,在里边随机放入1到50中的49个,设计一种最快的算法,求出那个数没被放入。

阅读 3.5k
3 个回答

求1到50的和,然后遍历数组求和,相减,如何

另建一个长度为50的数组,全部初始化为0,遍历给定数组,置新建数组下标等于给定数组当前值的位置为1,最后输出新建数组值为0的下标。这是我的第一反应,坐等更好的办法。

用 1 到 50 的和去扣掉所有在數組中的數字:

# array is an array with length 49

ans = 1275

for i in range(49):
    ans -= array[i]
    
# ans is the number we want to find

Time Complexity: O(n)
Space Complexity: O(1)


我回答過的問題: Python-QA

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题