用Java写一个删除数组中重复的数值元素,是每个元素最多只出现两次,并将剩余的元素保存在列表集合并返回的代码
时间: 2024-02-09 21:10:56 浏览: 63
可以使用双指针的方法来实现这个功能,具体代码如下:
```java
import java.util.ArrayList;
import java.util.List;
public class RemoveDuplicates {
public static List<Integer> removeDuplicates(int[] nums) {
List<Integer> result = new ArrayList<>();
int i = 0, j = 0;
while (j < nums.length) {
if (i < 2 || nums[j] != nums[i - 2]) {
result.add(nums[j]);
i++;
}
j++;
}
return result;
}
public static void main(String[] args) {
int[] nums = {1, 1, 1, 2, 2, 3};
List<Integer> result = removeDuplicates(nums);
System.out.println(result);
}
}
```
在这个代码中,我们使用了两个指针 `i` 和 `j` 来遍历数组。指针 `i` 用来记录当前不重复的元素的位置,指针 `j` 则用来遍历整个数组。
对于每个元素,我们判断它是否是重复的。如果它是数组中的前两个元素之一,或者它与前面的两个元素不同,就将它保存到结果集合中,并让指针 `i` 加一。
最后返回结果集合即可。
阅读全文