北欧名企~Coding Technical Interview

题目大意:在长度为N数组A中找到一个未出现的正整数。
条件:
1)时间复杂度尽可能低
2)N的长度[1,100,000]
3)每一个A中的元素的值域为[-1,000,000,1,000,000]

分析:
1)排序,然后遍历判断(A[i]-A[i-1]&& A[i]>0)>=2, 输出ans = (A[i]+1), O(n) = n*logn + n
2)利用字典的想法,创建一个B数组,数组长度为[100,000,002], 遍历数组,判断A[i] > 0, B[A[i]] = 1. 结束后从1开始遍历数组,如果出现B[i] = 0,输出i. O(n) <= 2n.

代码:
代码很简单实现,这里就不给了。

暂时只能想到这两种,如果有别的想法欢迎交流。

相关文章:

  • 2021-07-08
  • 2021-08-15
  • 2021-11-26
  • 2021-05-19
  • 2022-02-22
  • 2021-06-05
  • 2021-05-31
猜你喜欢
  • 2022-03-09
  • 2021-09-28
  • 2021-06-21
  • 2021-05-29
  • 2021-07-26
  • 2021-08-17
  • 2021-12-09
相关资源
相似解决方案