1 题目
2 代码
import java.util.Scanner;
public class B1023 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] num = new int[10];
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 10; i++) {
num[i] = sc.nextInt();
}
// 从1开始搜索,寻找1-9中最小的数字作为首数字
for (int i = 1; i < 10; i++) {
if (num[i] != 0) {
sb.append(i);
num[i]--;
break;
}
}
// 当首数字出现后,从小到大依次添加所有数字即为最小数字
for (int i = 0; i < 10; i++) {
while (num[i] != 0) {
sb.append(i);
num[i]--;
}
}
System.out.println(sb.toString());
}
}
3 要点
(1)贪心思想:保证每次操作都是局部最优的,并且最后得到的结果是全局最优的。