码迷,mamicode.com
首页 > 其他好文 > 详细

第四章实践

时间:2018-12-02 00:40:11      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:小数   设计   最小   while循环   数组定义   一个   第四章   -o   输入   

1.实践题目

 删数问题 

2.问题描述

给定n位正整数a,去掉其中任意k≤n 个数字后,剩下的数字按原次序排列组成一个新 的正整数。对于给定的n位正整数a和正整数 k,设计一个算法找出剩下数字组成的新数最 小的删数方案。

输入格式:

第 1 行是1 个正整数 a。第 2 行是正整数k。

输出格式:

输出最小数。

输入样例:

在这里给出一组输入。例如:

178543 
4 

输出样例:

在这里给出相应的输出。例如:

13

3.算法描述

对输入的字符数组从第一个字符进行遍历,当小的数在前的时候,继续向后遍历;当大的数在前的时候,将该数删除,也就是把后面的数依次向前挪一个把该数覆盖,直到被覆盖数的个数等于要删除数的个数。如果被覆盖数的个数小于要删除数的个数的时候就已经遍历完成,此时字符数组是升序,保留前面的数即可。在新生成的字符数组中,如果所有的数为0,输出0;如果首位的几个数也为0,就从不是0的开始输出。

4.算法时间及空间复杂度分析(要有分析过程)

空间复杂度为O(1),就是一个字符数组的长度。

时间复杂度为O(n2),因为while循环内还有一个移动字符的for循环。

5.心得体会(对本次实践收获及疑惑进行总结)

删数问题最开始用的string里面的eraser一直出错,因为字符串的长度会从被擦掉字符那里断掉,很困惑。后来换成了字符数组的方式,运行正确但是由于数组定义的大小太小,导致pintia上面提交后显示运行错误。感觉最后做出来很不容易,还有就是最优合并问题有点难。

第四章实践

标签:小数   设计   最小   while循环   数组定义   一个   第四章   -o   输入   

原文地址:https://www.cnblogs.com/wwency/p/10051829.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!