delete k number to get the smallest int
Given a number, can you remove k digits from the number so that the new
formatted number is smallest possible.
input: n = 1432219, k = 3
output: 1219
思想:贪心算法,查找规律
代码:
- #include <iostream>
- #include <string>
- using namespace std;
- string deleteKNumber(string &str,int k) {
- string::iterator start;
- bool flag = false;
- for(int i=k;i>0;i--) {
- flag = false;
- for(start = str.begin();start<str.end()-1;++start) {
- if(*start > *(start+1)) {
- str.erase(start);
- flag = 1;
- break;
- }
- }
- if(!flag) {
- str.erase(str.end()-i,str.end());
- break;
- }
- }
- return str;
- }
- int main() {
- string data="12469823859";
- cout<<deleteKNumber(data,2)<<endl;
- return 0;
- }

浙公网安备 33010602011771号