【滑动窗口】BISHI47 交换到最大


思路

求解代码

java 复制代码
public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));

        int t = Integer.parseInt(br.readLine());

        while (t-- > 0) {

            String str = br.readLine();
            char[] s = str.toCharArray();
            int n = s.length;

            for (int i = 0; i < n; i++) {
                int max_val = s[i] - '0';
                int max_index = i;
                // 在窗口内寻找能产生最大价值的来源
                for (int j = i; j < Math.min(i + 10, n); j++) {
                    int cur_val = (s[j] - '0') - (j - i);
                    if (cur_val > max_val) {
                        max_val = cur_val;
                        max_index = j;
                    }
                }
                // 物理移动来源字符到当前位置i
                int tmp_index = max_index;
                while (tmp_index > i) {
                    char tmp_val = s[tmp_index];
                    s[tmp_index] = s[tmp_index - 1];
                    s[tmp_index - 1] = tmp_val;
                    tmp_index--;
                }
                // 将当前位置i的字符值更新为计算出的最优值
                s[i] = (char) (max_val + '0');
            }

            out.println(new String(s));
        }
        out.flush();
        out.close();
        br.close();
    }
相关推荐
小羊没烦恼!1 天前
微服务化的基石——持续集成
java·大数据·word·powerpoint·.net
俊昭喜喜里1 天前
java中的继承和多态的区别
java
小羊没烦恼!1 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
譕痕1 天前
JSONObject与JSONArray封装数据格式区别
java·json
胡写代码1 天前
别再前后端各写一套表单校验了
java·后端
小鱼能吃糖1 天前
缺陷修复总览 · mall电商项目:5类缺陷,1个病根,4个业务域
java·电商
三十而立洋1 天前
Cookie 详解:从产生到安全,一次讲透
前端·javascript
此时不提桶,更待何时1 天前
01-06-A-JVM排查实战详解
java·jvm
伞伞悦读1 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
vipxieliang1 天前
ValidX 在 DDD 领域驱动设计中的实践
java·spring boot