当前位置:网站首页>CSDN(成长一夏竞赛)- 最大数
CSDN(成长一夏竞赛)- 最大数
2022-08-02 13:13:00 【放羊的牧码】
题目大意
给定任意一个数字 m,然后给出数字 n,则需在 m 中去掉 n 位数,保持各位顺序不变的情况下,得到最大数。
输入描述
输入整数n,m (1<=n<=1e100,1<=m<=100)
输出描述
输出删除后的最大数。
示例
输入:1234 2
输出:34
解题思路
- 计算出结果坑位数(size = n.length - m)
- 每一个坑位数的最大值下标[0, size]、[0, size + 1]、[0, size + 2]……
- 最难理解在第二点,因为题目说保障前后顺序,所以比如 12345 2,那么,坑位数为 3,第一个位置的最大值在[0, 2],第二个[0, 3],第三个[0, 4],中途如果被用过的数字需要做下标记,后面的坑位不能再使用
相关企业
- CSDN
AC 代码
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String str_0 = scan.nextLine();
String[] line_list_0 = str_0.trim().split(" ");
ArrayList<String> arr = new ArrayList<>();
for(int i = 0; i < line_list_0.length; i++){
arr.add(line_list_0[i]);
}
scan.close();
String result = solution(arr);
System.out.println(result);
}
public static String solution(ArrayList<String> arr){
String str = arr.get(0);
int cnt = Integer.valueOf(arr.get(1));
int len = str.length();
int diff = len - cnt;
char[] chars = new char[diff];
char[] pre = str.toCharArray();
for (int i = 0, from = 0; i < diff; i++) {
// j = from,优化,因为下一个坑位数不可能在 from 之前
for (int j = from; j <= cnt + i; j++) {
if (chars[i] < pre[j]) {
chars[i] = pre[j];
from = j + 1;
}
}
}
return String.valueOf(chars);
}
}边栏推荐
猜你喜欢
随机推荐
基于flask商城的管理员功能
Do you know Dijkstra of graph theory?
你知道图论的spfa吗?
How to improve the originality of self-media creation and create popular works?
【C语言】虐打循环结构练习题
RestTemplate 使用:设置请求头、请求体
Cannot determine loading status from target frame detached when selenium chrome driver is running
Introduction to Graph Neural Networks (GNN) "Recommended Collection"
暑假集训-week2图论
图文短视频自媒体怎么创作?如何让点击量达到10W?
Detailed explanation of network flow (what information can the flow network diagram generally reflect)
【C语言】函数哪些事儿,你真的get到了吗?(1)
基于 WeihanLi.Npoi 实现excel导入时纯汉字的日期转换
Redis全部
The uniapp/applet onload method executes the interpretation every time the page is opened
Enterprise Network Planning Based on Huawei eNSP
图论之Kruskal,最小生成树如何优雅解题?
.Net 5.0 Quick Start Redis
eclipse连接数据库后插入数据报错null
【C语言】明解数组(1)









