面向对象有一有序数组,要求使用一次循环,在原数组中删除重复数据。 例如[1,1,1,2,2,3,3,3,4] 结果[1,2,3,4,0,0,0,0,0]
时间: 2023-09-22 19:05:50 浏览: 38
要在原数组中删除重复数据,你可以使用面向对象的方式来解决。你可以创建一个新的类来表示这个问题,例如`ArrayHelper`类。这个类可以有一个静态方法`removeDuplicates`,接收一个有序数组作为参数,并在原数组中删除重复数据。
以下是使用Java实现的代码示例:
```java
public class ArrayHelper {
public static void removeDuplicates(int[] nums) {
if (nums.length <= 1) {
return;
}
int newIndex = 1; // 指向新数组的指针
for (int i = 1; i < nums.length; i++) {
if (nums[i] != nums[i - 1]) {
nums[newIndex] = nums[i];
newIndex++;
}
}
// 将新数组指针后面的位置填充为0
while (newIndex < nums.length) {
nums[newIndex] = 0;
newIndex++;
}
}
}
```
使用以上代码,你可以调用`ArrayHelper.removeDuplicates`方法,将给定的有序数组中的重复元素删除,并在原数组中以0填充剩余位置。例如,对于输入数组 `[1, 1, 1, 2, 2, 3, 3, 3, 4]`,经过处理后,结果为 `[1, 2, 3, 4, 0, 0, 0, 0, 0]`。
你可以根据需要将这段代码集成到你的项目中,或者根据自己的需求进行修改。