java基础:设计一个方法removeDuplicates(),要求删除数组nums中重复出现的元素,使得每个元素最多只出现两次,并将剩余的元素保存到列表集合并返回
时间: 2024-01-21 15:17:54 浏览: 89
以下是一个可能的实现:
```java
import java.util.ArrayList;
import java.util.List;
public class ArrayUtils {
public static List<Integer> removeDuplicates(int[] nums) {
List<Integer> result = new ArrayList<>();
int count = 1; // 当前元素出现的次数
for (int i = 1; i < nums.length; i++) {
if (nums[i] == nums[i-1]) {
count++;
} else {
// 当前元素和前一个元素不相同,加入结果集合
result.add(nums[i-1]);
if (count >= 2) {
// 如果前一个元素出现了两次及以上,再加入一次
result.add(nums[i-1]);
}
count = 1; // 重置计数器
}
}
// 加入最后一个元素
result.add(nums[nums.length-1]);
if (count >= 2) {
result.add(nums[nums.length-1]);
}
return result;
}
}
```
这个方法的基本思路是遍历数组,用一个计数器记录当前元素出现的次数。如果当前元素和前一个元素相同,计数器加一;否则,将前一个元素加入结果集合,并判断是否需要加入第二次,然后重置计数器。最后加入最后一个元素并返回结果集合。
阅读全文