查找不在列表中的最小整数

查找不在列表中的最小整数,第1张

查找不在列表中的最小整数

如果数据结构可以在适当位置进行突变并支持随机访问,则可以在O(N)时间和O(1)额外空间中进行 *** 作。只需按顺序遍历该数组,并为每个索引将索引处的值写入由value指定的索引,然后将该位置的任何值递归地放置到该位置,并丢弃值>N。其中value与索引不匹配-
这是不在数组中的最小值。这样最多可以进行3N比较,并且仅使用一些值的临时空间。

# Pass 1, move every value to the position of its valuefor cursor in range(N):    target = array[cursor]    while target < N and target != array[target]:        new_target = array[target]        array[target] = target        target = new_target# Pass 2, find first location where the index doesn't match the valuefor cursor in range(N):    if array[cursor] != cursor:        return cursorreturn N


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5674137.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存