在我的算法课中,我们必须上交用于删除整数列表重复项的算法,并尽可能降低复杂度。在我的算法中,当我看到一个重复的整数时,我将该整数之后的每个元素向下移动一个索引,以便使用 for 循环删除重复的元素;像这样:
for(int i=dup_index; i<arr_size-1; i++)
{
arr[i] = arr[i+1];
}
我的算法使用 memmove 会更有效吗?此外,如果设计算法是我的工作,并且假设 memmove 降低了我的算法的复杂性,那么使用 memmove 会被视为“作弊”吗?