编程语言
首页 > 编程语言> > 删数问题(贪心算法)

删数问题(贪心算法)

作者:互联网

题目描述
键盘输入一个高精度的正整数 NN(不超过 250250 位),去掉其中任意 kk 个数字后剩下的数字按原左右次序将组成一个新的非负整数。编程对给定的 NN 和 kk,寻找一种方案使得剩下的数字组成的新数最小。

输入格式
n(高精度的正整数 )。

k(需要删除的数字个数 )。

输出格式
最后剩下的最小数。

输入样例

175438 
4

输出样例

13
#include<bits/stdc++.h>
using namespace std;

int main()
{
	string a;  int n,t,cnt=0;
	cin>>a>>n;
	t=n;
	while(t--)
	{
		for(int i=0;i<a.length()-1;i++)
		{
			if(a[i]>a[i+1])
			{
				a.erase(i,1);
				cnt++;
				break;
			}
		}
	}
	if(cnt<n)
	a.erase(a.end()-n+cnt,a.end());
	int j=0;
	while(j<a.length()&&a[j]=='0')
	j++;
	if(j==a.length())
	cout<<0;
	else
	cout<<a.substr(j);
	return 0;	
} 

标签:cnt,数字,NN,int,样例,算法,kk,删数,贪心
来源: https://blog.csdn.net/weixin_47511190/article/details/110731611