第四章实验报告
一. 实验内容:“贪心算法”上机实践。
二. 实践题目:删数问题。
问题描述:
给定n位正整数a,去掉其中任意k≤n 个数字后,剩下的数字按原次序排列组成一个新的正整数。对于给定的n位正整数a和正整数 k,设计一个算法找出剩下数字组成的新数最小的删数方案。如果数字最前面 有0 不输出。
输入格式:
第 1 行是1 个正整数 a。第 2 行是正整数k。
输出格式:
输出最小数。
输入样例:
在这里给出一组输入。例如:
178543
4
结尾无空行
5001
1
结尾无空行
123456
2
结尾无空行
109
1
结尾无空行
输出样例:
在这里给出相应的输出。例如:
13
结尾无空行
1
结尾无空行
1234
结尾无空行
9
结尾无空行
三. 算法思想:贪心算法:输入一串字符串,每次进行一次排序,找到非降序序列的的最后一个数字,删去这个数字,用后一位取代它。由此删去数据所要求删除的数字个数之后,则得到答案。
四. 代码实现:
输出设置flag标签,flag=1则说明首位为0,要删除一位,flag为1则输出。
时间复杂度为O(n^2)
五. 总结:用贪心算法解题时,要找到贪心策略,从最能满足题目要求的方向入手,有时候要靠直觉,然后再思考细节,用代码实现需求。
浙公网安备 33010602011771号