
关注
周五比较放松给你写一下吧,兄弟们想投我们这边请刷我帖子
#include <bits/stdc++.h>
using namespace std;
//直接从前往后跑一遍当前数字能不能改取个最值就行,复杂度10*len(n),
int main() {
int n = 23121;
string s = std::to_string(n);
vector<int> num = {2, 4, 9};
vector<bool> flag(10, 0);
int max_num = 0;
for (auto e : num) {
flag[e] = 1;
max_num = max(max_num, e);
}
int minl = -1;
int pre_num = 0;
//特判一下前导零少位的情况
for (int i = 0; s[i]; i++) {
pre_num = pre_num * 10 + max_num;
if (pre_num < n) {
minl = max(minl, pre_num);
}
}
pre_num = 0;
for (int i = 0; s[i]; i++) {
// 换这一位
int index_num = s[i] - '0';
for (auto e : num) {
if (e < index_num) {
int ans = pre_num * 10 + e; // 后面放最大
for (int j = 1; j < s.size() - i; j++) { // 这里可以预处理个数组去掉
ans = ans * 10 + max_num;
}
minl = max(minl, ans);
}
}
pre_num = pre_num * 10 + index_num;
}
if (minl == -1) minl = -1;// 无解
cout << minl << endl;
return 0;
}
查看原帖
点赞 3
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# AI让海力士市值突破9000亿美元 #
365次浏览 7人参与
# 百度工作体验 #
335525次浏览 2283人参与
# 在爱玛,骑向未来 #
46346次浏览 440人参与
# 打工人的精神状态 #
155233次浏览 1572人参与
# 职场新人体验 #
193394次浏览 1253人参与
# 百度求职进展汇总 #
731627次浏览 6450人参与
# 工作后,你落下了哪些病根 #
42713次浏览 300人参与
# 机械人,说说你的烦心事 #
149326次浏览 1174人参与
# 简历当中有水分算不算造假? #
176871次浏览 2331人参与
# 机械人,你最希望上岸的公司是? #
218444次浏览 1946人参与
# 你收到了哪些公司的笔试? #
69647次浏览 446人参与
# 米哈游求职进展汇总 #
692160次浏览 3364人参与
# 毕业季,给职场新人一些建议 #
221961次浏览 2608人参与
# 工作压力大,你会干什么? #
83013次浏览 713人参与
# 机械/制造每日一题 #
98110次浏览 1503人参与
# 为了求职,我做过的疯狂伪装 #
88683次浏览 777人参与
# 如果秋招能重来,我会____ #
105747次浏览 514人参与
# 你以为的实习VS真实的实习 #
143044次浏览 758人参与
# 什么专业适合考公 #
69993次浏览 359人参与
# 重来一次,我还会选择这个专业吗 #
467986次浏览 3988人参与
# 应届生第一份工作最好去大厂吗? #
150736次浏览 1230人参与
