4

您能否建议我在 O(n) 时间内从给定数组中删除所有零且无需外部存储器的最佳算法。例如,1 2 0 0 3 2 0 2 变为 1 2 3 2 2

4

1 回答 1

16

使用两个指针 - 一个用于读取,一个用于写入。

  • 使用数组上的读取器指针进行迭代 - 如果元素为零,则仅增加它。
  • 如果元素不为零 - 写它并增加两个指针。
于 2012-05-25T10:15:25.630 回答