贪心算法C语言解决删数问题

问题描述:

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

如:把178543删掉4位数,生成最小的数为13

解决办法:贪心算法,每次删数时选择删除非递减序列的最后一个数,注意不是每次删除最大的数

证明过程略

C语言代码如下

#include
void Delnum(int n,int k,int a[])//这个函数会稍微难理解些 
{
	int i,j,t;
	for(t=1;t<=k;t++)//表示要删k次数 
	{
		for(j=0;a[j]<=a[j+1]&&j

运行结果如下

贪心算法C语言解决删数问题_第1张图片​​​​​​​ 

你可能感兴趣的:(算法代码,贪心算法,算法,c语言)