第四章实验报告

一. 实验内容:“贪心算法”上机实践。

 

二. 实践题目:删数问题。

      问题描述:

      给定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)

五. 总结:用贪心算法解题时,要找到贪心策略,从最能满足题目要求的方向入手,有时候要靠直觉,然后再思考细节,用代码实现需求。

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
posted @ 2021-11-14 17:16  MJoe  阅读(49)  评论(0)    收藏  举报