gpt4 book ai didi

Java重复不同的唯一数组值

转载 作者:行者123 更新时间:2023-12-02 00:15:49 25 4
gpt4 key购买 nike

我正在尝试解决这个问题,但我不知道如何......

Values[10] = {1,1,4,4,2,3,3,2,1,3}

打印:

{1,2,3,4} or {1,4,2,3} (not sorted, any order, but distinct)

我还需要计算每个数字出现的次数,都没有排序、新数组或 boolean 方法或其他数据结构,请告知我,因为我被卡住了。

有没有一种简单的方法可以用来打印唯一值/不同值?

最佳答案

如果你愿意摧毁你当前的阵列,这是可以完成的。并且您假设该数组是 Integer 类型(因此可为空),或者如果不是,则存在某种界限,例如所有 int 都是正数,因此您可以使用 -1

for(int i = 0;  i < values.length; i++){               //for entire array             

Integer currVal = values[i]; // select current value
int count = 1; // and set count to 1

if(currVal != null){ // if value not seen

for( int j = i + 1; j < values.length; j++){ // for rest of array
if(values[j] == currVal){ // if same as current Value
values[j] = null; // mark as seen
count++; // and count it
}
}
System.out.print("Number : " + currVal + " Count : " + count + "\n");
//print information
}
// if seen skip.
}

用简单的英语来说,分 2 次循环遍历数组,大约需要 O(n^2) 时间。转到索引 i。如果尚未看到索引(不为空),则遍历数组的其余部分,标记与所见值相同的任何索引(使其为空)并递增计数变量。在循环结束时打印值和计数。如果已看到索引(为空),则跳过并转到下一个索引。在两个循环结束时,所有值都将保留为空。

Input : Values[] = {1,1,4,4,2,3,3,2,1,3}


Output : Values[] = {1,null,4,null,2,3,null,null,null,null}
Number : 1 Count : 3
Number : 4 Count : 2
Number : 2 Count : 2
Number : 3 Count : 3

编辑:纠正了评论者指出的输出错误。

关于Java重复不同的唯一数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11906287/

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