美文网首页
贪心算法删数问题

贪心算法删数问题

作者: Super_邓帅 | 来源:发表于2016-12-31 19:19 被阅读0次


删数问题

给定n位正整数a,去掉其中任意k个数字后,剩下的数字按原次序排列组成一个新的正整数。对于给定的n和k,设计一个算法,找出剩下数字组成的新数最少的删数方案。
输入示例: 178543 4
输出: 13
输入示例: 56317 3
输出: 17

分析:

每一步总是选择一个使剩下的数最小的数字删除。
即按高位到低位的顺序搜索,若各位数字递增,则删除最后一个数字;否则删除第一个递减区间的首字符。
删除之后,其他数字往前移动一位,填补位置。
最后把剩下的几个数字,组成一个整数。

#include<stdio.h>
#include<math.h> 

int main()
{
    int a,n,k;          //n指a有多少位 
    int i,j,s=1;
    scanf("%d",&a);     //a为输入的整数   
    scanf("%d",&k);     //删去k个数字 
    n=log10(a)+1;       
    
    int p[n];
    j=a;
    for(i=n-1;i>=0;i--){  //数组p中从0到n-1,分别为:5 6 3 1 7 
        p[i]=j%10;
        j/=10;
    }
    
    for(i=1;i<=k;i++){  //控制删去的个数 
        for(j=0;j<n-i;j++){
            if(p[j]<p[j+1]){  //如果递增,删除最后一个数 
                continue;
            }else{            //如果递减,删除第一个数 
                p[j]=-1;
                break;
            }
        } 
        for(j=0;j<n-i;j++){   //删掉的数的位置被赋值-1,现在把-1以后的数 
            if(p[j]==-1){     //都往前挪 
                p[j]=p[j+1];
                p[j+1]=-1;
            }
        }
    }
    
    for(i=0;i<n-k;i++){
        printf("%d",p[i]);
    }
    return 0;
}
运行截图

相关文章

  • 贪心算法删数问题

    删数问题 给定n位正整数a,去掉其中任意k个数字后,剩下的数字按原次序排列组成一个新的正整数。对于给定的n和k,设...

  • 【算法打卡60天】Day29贪心算法:如何用贪心算法实现Huff

    Day29学习内容 :贪心算法:如何用贪心算法实现Huffman压缩编码? 1.如何理解贪心算法?贪心算法解决问题...

  • 只需9步,直接拿下贪心算法

    今天为大家分享的是贪心算法。 贪心算法:贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选...

  • 可用贪心算法解决的几个基本问题

    可用贪心算法解决的几个基本问题 关键:看问题有没有贪心选择性质和最优子结构性质。有些问题看似是可以用贪心算法,但是...

  • 算法理论 | 贪心算法

    贪心算法 贪心算法,又称贪婪算法(Greedy Algorithm),是指在对问题求解时,总是做出在当前看来是最好...

  • GREEDY ALGORITHM

    贪心算法原理 贪心算法以动态规划方法为基础,区别于贪心算法在每一次做出贪心选择后,子问题之一为空,下一步只需继续分...

  • 装箱问题

    贪心算法 装箱问题 问题描述: 求解思路: 代码实现:

  • 贪心算法+回溯算法

    贪心算法 先来比较一下贪心算法和动态规划 贪心算法是指在对问题求解时,总是做出在当前看来是最好的选择,不考虑整体,...

  • 14《算法入门教程》贪心算法之背包问题

    1. 前言 本节内容是贪心算法系列之一:背包问题,主要讲解了什么是背包问题,如何利用贪心算法解决背包问题,给出了背...

  • 算法小专栏:贪心算法

    本篇将介绍贪心算法相关知识。 一、简介 贪心算法,又称“贪婪算法”。在对问题求解时,总是做出在当前看来是最好的选择...

网友评论

      本文标题:贪心算法删数问题

      本文链接:https://www.haomeiwen.com/subject/ubcbvttx.html