Java重复不同的唯一数组值

标签 java

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

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/

相关文章:

java - Maven Surefire 在模块中找不到 testng 测试

java - 将 EditText 值从 android 发送到 PHP 文件并执行 PHPmailer send() 函数

java - 尽管没有重叠,但 Mongo DuplicateKey 错误

java - 我是否需要在实现时再次@Nonnull?

java - 使用 SSL 连接通过 Gmail SMTP 服务器发送电子邮件通知

java - Eclipse Hadoop 插件在尝试连接时显示 "java.io.EOFException"

java - android studio中有 "java.io.IOException"问题的解决方案吗?

java - Android Retrofit 带有安全 header 的 Soap 请求信封

java - 如何将条件数据添加到 itext 表格单元格中

java - 从 Eclipse 项目中提取解析的 Eclipse 构建类路径的更好方法