版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

首先想到的是模拟,即按题目描述的步骤重复删除数字,直至剩下一个数字为止。实际操作时,由于数组元素只会出现1~n,所以只需要将待删除的数字置为0或一个负数即可,不必真正删除该数字。

上面的方式每次删除数字时需要遍历一轮数组,由于每次删除剩余数组一半的元素,所以一共需要删除 上面的方式每次删除数字时需要遍历一轮数组,由于每次删除数组剩余元素的一半,所以一共需要删除 log2n 次,整体算法复杂度为O(nlogn)级别,考虑到n的数量级为109级别,算法极有可能超时。

...