什么是就地算法?

Abh*_*pta 0 string algorithm traversal duplicates in-place

假设我想从字符串中删除重复项.我决定使用长度为256的布尔数组来存储特定字符是否已经出现.我可以遍历字符串,并可以借助此辅助布尔数组删除所有重复项.

我的问题是"这个算法是否就位?"

我认为它使用的是恒定的空间量,它不会随着它应该就地输入的大小而改变.如果我错了,请纠正.

Til*_*lak 5

就地算法意味着您正在将输入数据转换为输出数据.运行算法后,无法检索返回的输入数据.

Out place算法意味着您保持输入数据不变,并为输出数据使用单独的空间.

我的问题是"这个算法是否就位?"

只要没有用于存储输出数据的单独阵列,该算法就位.在输入数据中,删除重复项后,其余元素可以为空/空.