2. JAVA题目:删除数组中的重复元素 要求:给定一个排序后的整数数组,删除重复 出现的元素,使每个只出现一次
时间: 2024-09-29 07:02:44 浏览: 37
在Java中,可以利用数组的特点,即有序,采用双指针法来解决这个问题。我们维护两个指针,一个指向当前处理的位置i,另一个是上次看到的不同元素的索引j。当i遇到与[j]相同的元素时,就跳过它,直到找到新的不同元素。最后将数组的前j+1个元素复制回原数组,长度变为j+1。
以下是具体的Java代码实现:
```java
public class Main {
public static void removeDuplicates(int[] nums) {
int j = 0; // 记录未重复元素的最后一个位置
for (int i = 0; i < nums.length; i++) {
if (nums[i] != nums[j]) { // 如果当前元素与已知的不同
j++;
// 把不同的元素移动到前面
nums[j] = nums[i];
}
}
// 最终数组长度就是j+1
nums = Arrays.copyOfRange(nums, 0, j + 1);
}
public static void main(String[] args) {
int[] nums = {1, 1, 2, 2, 3, 4, 4, 4};
removeDuplicates(nums);
for (int num : nums) {
System.out.print(num + " ");
}
}
}
```
执行上述代码后,数组`nums`会变成`1 2 3 4`,重复的元素已经被移除。
阅读全文