【算法题】1881. 插入后的最大值

手机软件开发 2024-9-29 11:48:57 70 0 来自 中国
插: 前些天发现了一个巨牛的人工智能学习网站,普通易懂,风趣幽默,不由得分享一下给各人。点击跳转到网站。
对峙不懈,越积极越荣幸,各人一起学习鸭~~~
标题:

给你一个非常大的整数 n 和一个整数数字 x ,大整数 n 用一个字符串体现。n 中每一位数字和数字 x 都处于闭区间 [1, 9] 中,且 n 大概体现一个 负数 。
你打算通过在 n 的十进制体现的恣意位置插入 x 来 最大化 n 的 数值 。但 不能 在负号的左边插入 x 。
例如,如果 n = 73 且 x = 6 ,那么最佳方案是将 6 插入 7 和 3 之间,使 n = 763 。
如果 n = -55 且 x = 2 ,那么最佳方案是将 2 插在第一个 5 之前,使 n = -255 。
返回插入操纵后,用字符串体现的 n 的最大值。
示例 1:
输入:n = "99", x = 9
输出:"999"
表明:不管在那里插入 9 ,结果都是雷同的。
示例 2:
输入:n = "-13", x = 2
输出:"-123"
表明:向 n 中插入 x 可以得到 -213、-123 大概 -132 ,三者中最大的是 -123 。
提示:
1 <= n.length <= 10^5
1 <= x <= 9
n 中每一位的数字都在闭区间 [1, 9] 中。
n 代表一个有效的整数。
当 n 体现负数时,将会以字符 '-' 开始。
思绪:

如果n是正数就从左向右查找,直到找到第一个小于x的数,插入进去,如果直到末了都没找到就拼接到末了。
如果n是负数就从左向右查找,直到找到第一个大于x的数,插入进去,如果直到末了都没找到就拼接到末了。
java代码:

class Solution {    public String maxValue(String n, int x) {        StringBuilder sb = new StringBuilder();        if (n.charAt(0) == '-') {            boolean f = true;            for (int i = 1; i < n.length(); i++) {                char c = n.charAt(i);                if (Long.parseLong(String.valueOf(c)) <= x) {                    sb.append(c);                } else {                    sb.append(x);                    sb.append(n.substring(i));                    f = false;                    break;                }            }            if (f) {                return sb.append(x).insert(0, '-').toString();            }            return sb.insert(0, '-').toString();        }        boolean f = true;        for (int i = 0; i < n.length(); i++) {            char c = n.charAt(i);            if (Long.parseLong(String.valueOf(c)) >= x) {                sb.append(c);            } else {                sb.append(x);                sb.append(n.substring(i));                f = false;                break;            }        }        if (f) {            return sb.append(x).toString();        }        return sb.toString();    }}
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-11-21 21:04, Processed in 0.552806 second(s), 32 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表