从数组O(n)中删除所有零,没有额外的内存

ren*_*thy 4 algorithm

COuld你建议我在O(n)时间内没有外部存储器从给定数组中删除所有零的最佳算法.例如,1 2 0 0 3 2 0 2变为1 2 3 2 2

ami*_*mit 16

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

  • 使用数组上的reader指针迭代 - 如果元素为零,则仅增加它.
  • 如果元素不为零 - 写入并增加两个指针.