1 条题解
-
0
思路分析
1. 任务拆解:
- 读取数字个数n
- 读取n个一位数
- 将数字按从小到大排序
- 处理前导0问题
- 输出最小的n位整数
2. 关键点分析:
- 要组成最小整数,需要将较小的数字放在高位
- 但不能以0开头,需要找到第一个非0数字与首位交换
- 先升序排序,再处理前导0的特殊情况
- 首位不能为0,需要与第一个非0数字交换
3. 步骤规划: 第一步:读取数字个数n 第二步:循环读取n个一位数 第三步:对数组进行升序排序 第四步:找到第一个非0数字的位置 第五步:将第一个非0数字与首位交换 第六步:输出交换后的数字序列
4. 代码对应:
cin>>n:读取数字个数- 第一个
for循环:输入n个一位数 sort(a+1,a+n+1):升序排序- 第二个
for循环:找到第一个非0数字的位置xi if(a[i]!=0):判断是否为非0数字swap(a[xi],a[1]):将第一个非0数字与首位交换- 输出循环:输出组成的最小整数
信息
- ID
- 517
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- 6
- 标签
- (无)
- 递交数
- 608
- 已通过
- 182
- 上传者