gpt4 book ai didi

java - 将排序数组中的唯一值复制到新数组***

转载 作者:行者123 更新时间:2023-11-29 04:32:23 27 4
gpt4 key购买 nike

我正在为我的数据结构类解决 Java 问题。

本质上,我们应该获取一个排序数组,从中删除所有重复项,然后将这些唯一值复制到一个新数组中。然而,具有挑战性的一点是我们只能遍历数组一次。我遇到的每个解决方案都需要至少遍历数组两次:一次用于“删除”重复值,另一次将唯一值复制到新数组。

在识别唯一值的过程中,有什么方法可以将唯一值复制到新数组?我正在用头撞墙,遇到各种 OutOfBounds 异常,试图解决这个问题。

我还应该提到数组的大小被认为是给定的。

感谢阅读!

到目前为止,这是我创建新数组的代码:

public static double[] removeDuplicates (double[] list) {

int numOfUniques = numUnique(list);
if (numOfUniques == 0){
return null;
}
else if (list.length < 2){
return list;
}

int counter = 0;
double[] uniquesArray = new double[numOfUniques];
uniquesArray[0] = list[0];

for(int i = 0; i < list.length-1; i++){
if (list[i] == list[counter]){
continue;
}
else{
counter++;
uniquesArray[counter] = list[i];
}
}

return uniquesArray;
}

对于一个值为 { 10, 11, 12 } 的数组,它返回一个值为 { 10, 11, 0 } 的数组 }

最佳答案

将值添加(在 List 的迭代过程中)到 Set然后创建一个 List来自这个Set . Set仅接受唯一值 - 始终丢弃重复值。

关于java - 将排序数组中的唯一值复制到新数组***,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43331516/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com