算法第四章作业
作业:
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;
}