...
首先想到的是模拟,即按题目描述的步骤重复删除数字,直至剩下一个数字为止。实际操作时,由于数组元素只会出现1~n,所以只需要将待删除的数字置为0或一个负数即可,不必真正删除该数字。
上面的方式每次删除数字时需要遍历一轮数组,由于每次删除剩余数组一半的元素,所以一共需要删除 上面的方式每次删除数字时需要遍历一轮数组,由于每次删除数组剩余元素的一半,所以一共需要删除 log2n 次,整体算法复杂度为O(nlogn)级别,考虑到n的数量级为109级别,算法极有可能超时。
...
...
首先想到的是模拟,即按题目描述的步骤重复删除数字,直至剩下一个数字为止。实际操作时,由于数组元素只会出现1~n,所以只需要将待删除的数字置为0或一个负数即可,不必真正删除该数字。
上面的方式每次删除数字时需要遍历一轮数组,由于每次删除剩余数组一半的元素,所以一共需要删除 上面的方式每次删除数字时需要遍历一轮数组,由于每次删除数组剩余元素的一半,所以一共需要删除 log2n 次,整体算法复杂度为O(nlogn)级别,考虑到n的数量级为109级别,算法极有可能超时。
...