设计一个方法removeDuplicates(),要求删除数组nums中重复出现的元素,使得每个元素最多只出现两次,并将剩余的元素保存到列表集合并返回public class ListDemo { public static void main(String[] args) { int[] nums1={0,3,1,1,0,2,1,3,1,2,1,2,3,3}; System.out.println(removeDuplicates(nums1)); //输出:[0, 3, 1, 1, 0, 2, 3, 2] int[] nums2={1,1,2,1,2,1,3,2}; System.out.println(removeDuplicates(nums2)); //输出:[1, 1, 2, 2, 3] } public static List<Integer> removeDuplicates(int[] nums){ //补充方法代码 }}
时间: 2023-07-02 13:05:57 浏览: 79
可以使用一个Map来记录每个元素出现的次数,遍历数组nums,如果元素在Map中出现的次数小于等于2次,则将该元素放入结果集合中。最后返回结果集合即可。
完整代码如下:
```
import java.util.*;
public class ListDemo {
public static void main(String[] args) {
int[] nums1 = {0,3,1,1,0,2,1,3,1,2,1,2,3,3};
System.out.println(removeDuplicates(nums1)); //输出:[0, 3, 1, 1, 0, 2, 3, 2]
int[] nums2 = {1,1,2,1,2,1,3,2};
System.out.println(removeDuplicates(nums2)); //输出:[1, 1, 2, 2, 3]
}
public static List<Integer> removeDuplicates(int[] nums) {
Map<Integer, Integer> map = new HashMap<>();
List<Integer> res = new ArrayList<>();
for (int num : nums) {
if (map.containsKey(num)) {
if (map.get(num) < 2) {
map.put(num, map.get(num) + 1);
res.add(num);
}
} else {
map.put(num, 1);
res.add(num);
}
}
return res;
}
}
```
阅读全文