这里我有整数数组类型为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。任何人都可以帮助我。你的帮助将不胜感激。
答案 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]);
}
}
}
如果你对数组进行排序,你肯定会有更好的复杂性。