65分求思路

题目描述

给定一个整数n,删除k位数字,使得留下的数字值最大

输入格式

第一行一个整数n表示要进行操作的整数

第二行一个整数k表示要删除数字的个数

输出格式

一行一个整数表示最大的结果

样例

Input 1

1259873685
5

Output 1

98785

数据范围

10≤n≤10^{15}
0≤s≤10

#include<bits/stdc++.h>
using namespace std;
int main(){
  string n,a;
  int k,m;
  cin>>n>>k;
  for(int i=0;i<k;i++){
    m=10;
    for(auto j:n)m=min(m,j-'0');
    for(int j=0;j<n.size();j++){
      if(m==n[j]-'0'){
        a="";
        for(int k=0;k<n.size();k++){
          if(k!=j)a+=n[k];
        }n=a;
        break;
      }
    }
  }cout<<n;
  return 0;
}
1 个赞

每次一对数 a[i],a[i+1](a[i] < a[i+1]) 时,删掉 a[i]

对了谁教我用一下 \LaTeX

直接利用 $ 包裹公式前后,记住一定一定要在 $ 前后加空格,否则会显示不出来