任何人都可以指导我如何从java中的数组中获取此输出?

时间:2014-11-20 11:06:43

标签: java arrays

这里我有整数数组类型为int [] values = {1,2,5,4,6,7,55,11,44,71,54,1001};从这里我需要得到重复的值为1,11,5,55,4,44。如何从值数组中获取这些值。我现在尝试如下。

class duplicateFinder
{
public static void main (String[] args) throws java.lang.Exception
 {      
    int[]values={1,2,5,4,6,7,55,11,44,71,54,1001};
    for (int i = 0; i < values.length; i++) {
        System.out.println(values[i]);
    }
 }
}

这里有什么我写的逻辑,以便我可以得到预期的输出:重复的值是:1,11,5,55,4,44。任何人都可以帮助我。你的帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

你可以尝试这样的事情:

    int[] values = { 1, 2, 5, 4, 6, 7, 55, 11, 44, 71, 54, 1001, 111, 222 };
    for (int i = 0; i < values.length; i++) {
        boolean printed = false;
        for (int j = 0; j < values.length; j++) {
            int duplicate = values[i];
            for (int pow = 1 + (int) Math.log10(values[i]); pow <= (int) Math.log10(values[j]); pow++) {
                duplicate += values[i] * (int) Math.pow(10, pow);
            }
            if (values[j] != values[i] && values[j] == duplicate) {
                if (!printed) {
                    System.out.println(values[i]);
                    printed = true;
                }
                System.out.println(values[j]);
            }
        }
    }

如果你对数组进行排序,你肯定会有更好的复杂性。