1344: 最小的數
阿新 • • 發佈:2018-11-11
1344: 最小的數
時間限制: 1 Sec 記憶體限制: 256 MB
題目描述
給你兩個一維陣列(都為大於等於1且小於等於9的數),從第一個陣列中取至少一個數字,再從第二個陣列中取至少一個數字,用你選取的數字組成一個整數,求能組成的最小整數。
如果從第一個陣列中選取的數與從第二個陣列中選取的數相等,只保留一個即可。
輸入
第一行:一個整數T,表示測試例項個數
對於每組測試例項:
第一行:包含兩個整數n 和 m (1 ≤ n, m ≤ 9) —— 分別表示兩個陣列的大小
第二行:包含n個整數a1, a2, ..., a
第三行:包含m個整數 b1, b2, ..., bm (1 ≤ bi ≤ 9) 第二個陣列
輸出
每組測試例項輸出一行:包含一個整數 —— 能組成的最小整數
樣例輸入
2 2 3 4 2 5 7 6 8 8 1 2 3 4 5 6 7 8 8 7 6 5 4 3 2 1
樣例輸出
25 1
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int a[]; int b[]; int fif[] = new int[n]; for (int i = 0; i < n; i++) { a = new int[sc.nextInt()]; b = new int[sc.nextInt()]; for (int j = 0; j < a.length; j++) { a[j] = sc.nextInt(); } for (int j = 0; j < b.length; j++) { b[j] = sc.nextInt(); } fif[i] = f(a,b); } for (int i = 0; i < fif.length; i++) { System.out.println(fif[i]); } } private static int f(int[] a, int[] b) { int temp = 99; for (int i = 0; i < a.length; i++) { for (int j = 0; j < b.length; j++) { if(a[i]==b[j]) { temp = Math.min(a[i], temp); break; }else if(a[i]<b[j]) temp = Math.min(a[i]*10+b[j], temp); else temp = Math.min(b[j]*10+a[i], temp); } } return temp; } } /************************************************************** Problem: 1344 User: 20161514325 Language: Java Result: 正確 Time:242 ms Memory:14664 kb ****************************************************************/