北京网站建设公司华网天下官网,口碑营销案例分析,电商页面设计公司,好的免费网站建站平台1.实践题目#xff1a;最小删数问题 2.问题描述#xff1a;给定n位正整数a#xff0c;去掉其中任意k≤n 个数字后#xff0c;剩下的数字按原次序排列组成一个新 的正整数。对于给定的n位正整数a和正整数 k#xff0c;设计一个算法找出剩下数字组成的新数最 小的删数方案。…1.实践题目最小删数问题 2.问题描述给定n位正整数a去掉其中任意k≤n 个数字后剩下的数字按原次序排列组成一个新 的正整数。对于给定的n位正整数a和正整数 k设计一个算法找出剩下数字组成的新数最 小的删数方案。 3.算法描述 #includeiostream
using namespace std;
string n; //定义字符串n
int s;
main()
{cinns;int lenn.length(); while(s--)for(int i0;ilen;i) if(n[i]n[i1]||ilen-1) //删除遇到的第一个递减序列的第一个数字(若整个字符串为非递减序列则删去末尾的数字){n.erase(i,1); //把当前字符从字符串中删除break; //不可省略否则字符串会多删字符}while(n[0]0n[1]) //去掉前缀0并至少保留1个数字n.erase(0,1); //删去当前字符串开头的0coutn; //输出字符串
} 4.算法时间和空间复杂度分析代码中只用了一个数组来储存字符串。所以空间复杂度为On时间复杂度为On² 5.心得最开始对本道题的思路在纠结删最大的数还是其他用这个思路一直行不通经过结对编程讨论后发现思路是错的得到正确思路之后开始完善代码。经过本次实践明白编程之前要先思考题目的解法如果思路一直是错的可以和别人讨论得出自己的思路错在哪里再开始打代码不然会把自己绕晕了。转载于:https://www.cnblogs.com/Z20171003329/p/10044839.html