C++程序 删除数组中所有出现的元素
本文将介绍如何使用C++程序删除数组中所有元素的出现。下面是一些示例:
输入: {1、4、3、6、8、3、9、10、3、3、7}
目标元素:3
输出: {1、4、6、8、9、10、7}
输入: {12、11、10、17、12、4、7、12}
目标元素:12
输出: {11、10、17、4、7}
有两种方法可以在C++中删除数组中所有元素的出现:
- 暴力法。
- 优化方法(原地移位)。
让我们开始逐个讨论这些方法。
1. 暴力法
在这种方法中,创建另一个数组并复制除目标元素以外的所有元素。以下是使用暴力方法删除数组中所有元素的C++程序:
输出
时间复杂度: O(n)
空间复杂度: O(n)
2.优化方法(原地移位)
在此方法中,将非目标元素移至左侧。
- 检查当前元素是否为目标元素。
- 如果它是目标元素,则增加计数器 cnt 。
- 在此元素之后,所有的非目标元素将以 (n-cnt) 的间隔向左移动。
以下是使用优化方法删除数组中所有元素的C++程序:
输出
- 时间复杂度:O(n)
- 空间复杂度:O(1)