题目: 输入3个数,输出具有的共同数字(如果存在)。例如,输入123,245,782则输出:2; 输入313,123,431则输出1,3。
为了实现高效,实现代码的时间复杂度与输入数字的位数成正比。
思路关键为: int[] num = new int[10]; num数组存储的是每个数字出现的个数,下标为该数字,值为此数字的个数。
实现代码如下:
import java.util.*;
public class Test4 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int[] num = new int[10];
for(int k=1; k<4; k++) {
int temp = Integer.parseInt(s.next());
while(temp != 0) {
if(num[temp%10] < k)
num[temp%10]++;
temp = temp/10;
}
}
System.out.print("The intersect number are : ");
for(int i=0; i<10; i++)
if(num[i] == 3)
System.out.print(i+ " ");
}
}
运行结果: