算法第四章作业

作业:

1.贪心算法:就是通过求局部最优解,并将所有局部最优以相似的方式求得并结合,进而得到全局最优解的一种算法。

2.满足性质:从最高位开始考虑,优先保证最高位最小,其次考虑下一位,以此递推

3.问题:算法是O(n^2)的算法,需要从头遍历,删除逆序对只能保证指针前的元素,无法删除指针后的元素

题目:  4-2 删数问题 

 

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

输入格式:

第 1 行是1 个正整数 a。第 2 行是正整数k。

输出格式:

输出最小数。

输入样例:

在这里给出一组输入。例如:

178543 
4 

输出样例:

在这里给出相应的输出。例如:

13

代码:

#include<iostream>
#include<algorithm>
using namespace std;
int a[1000];
string num;
int n;

int main(){
int len;
cin>>num;
cin>>n;

len = num.length();
while(n--)
for(int i = 0 ; i < len ; i++)
{
if(num[i]>num[i+1]||i == len - 1)
{
num.erase(i,1);
break;
}
}
while(num[0]=='0'&&num[1])
num.erase(0,1);
cout<<num;
}

 
posted @ 2020-11-15 08:50  撕破`伤口  阅读(84)  评论(0编辑  收藏  举报