LeetCode 5773 插入后的最大值(中等 贪心)
LeetCode 5773 插入后的最大值
1. 题目
给你一个非常大的整数 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 <= 105 ,1 <= x <= 9,n 中每一位的数字都在闭区间 [1, 9] 中。, n 代表一个有效的整数。当 n 表示负数时,将会以字符 '-' 开始。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/maximum-value-after-insertion
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2.题解
随便距数据,比如“345”,插入数字4, 插入的可能有三种4345, 3445,3454, 如果插入数字2的话有四种可能:2345,3245,3425,3452,可以发现需要插入到抵押给小于该数字的地方,如果是负数则是插入到第一个大于该数字的地方。
- 方法1: 代码如下
class Solution {public String maxValue(String n, int x) {char[] st = n.toCharArray();StringBuilder st2 = new StringBuilder();int flag1 = 0;//如果为负if(st[0] == '-'){st2.append(st[0]);for(int i = 1; i < st.length; i++){//插入到第一个大于之前if(flag1 == 0 && (st[i] - '0') > x){flag1 = 1;st2.append((char)(x + '0'));}st2.append(st[i]);}if(flag1 == 0)st2.append((char)(x + '0'));}else{for(int i = 0; i < st.length; i++){//插入到第一个小于之前if(flag1 == 0 && (st[i] - '0') < x){flag1 = 1;st2.append( (char)(x + '0'));}st2.append(st[i]);}if(flag1 == 0)st2.append((char)(x + '0'));}return st2.toString();}
}
LeetCode 5773 插入后的最大值(中等 贪心)相关推荐
- LeetCode——1834. 单线程 CPU(Single-Threaded CPU)[中等]——分析及代码(Java)
LeetCode--1834. 单线程 CPU[Single-Threaded CPU][中等]--分析及代码[Java] 一.题目 二.分析及代码 1. 优先队列 (1)思路 (2)代码 (3)结果 ...
- leetcode 57. 插入区间 58. 最后一个单词的长度
leetcode 57. 插入区间 58. 最后一个单词的长度 57. 插入区间 难度中等512收藏分享切换为英文接收动态反馈 给你一个 无重叠的 *,*按照区间起始端点排序的区间列表. 在列表中插入 ...
- mysql 事务 返回插入的值_Mysql同一个事务内记录成功插入后查询不出来
背景: 1)mysql:Ver 14.12 Distrib 5.0.45, for Win32 (ia32) 2)mysql odbc驱动:3.51.22 3)vs2005 4)客户端用ado,odb ...
- 去除U盘插入后自动弹框的问题
U盘插入后自动弹框,这个很影响平时的操作,现在介绍下去除的办法: 1. 打开"控制面板",选择"硬件和声音",,点击进入. 把"为所有媒体和设备使 ...
- Leetcode: 二叉树的后序遍历
Leetcode: 二叉树的后序遍历 后遍历的流程:一直往下走,把路口记下来,假如路口有馒头,我们是不吃的,因为要先吃最后的,中间的岔路如果有岔路,就把右边的岔路记下来,但是因为右边没有走过,所以访问 ...
- 关于移动硬盘插入后无显示的问题
项目场景: 最近在做实验,虚拟机都装在移动硬盘上,有一天晚上突然发现移动硬盘插入后无反应(有提示音但一直没显示磁盘),一开始还以为是local print queue驱动的问题,因为刚好驱动精灵诊断该 ...
- CAD中插入外部参照字体会变繁体_为什么CAD图纸作为外部参照插入后有些文字消失?...
下面是本公众号文章分类目录,点击标题文字可打开分类文章列表: 安装卸载 异常.退出 文件及输入输出 基本操作技巧 设置及相关问题 界面和显示 快捷键 视图设置 选择及组 坐标输入.定位 ...
- 银行卡在ATM机器上插入后显示IC磁条芯片卡拒绝交易解决办法
描述:银行卡在ATM机器上插入后显示IC磁条芯片卡拒绝交易解决办法 步骤: 取出银行卡,将银行卡放在银行卡IC卡感应位置 ATM机主页面选择 非IC卡业务,最后会识别并可以取钱,成功 成功后将银行卡再 ...
- CAD中插入外部参照字体会变繁体_为什么在原点附近的图纸作为外部参照插入后却离插入点很远?...
下面是本公众号文章分类目录,点击标题文字可打开分类文章列表: 安装卸载 异常.退出 文件及输入输出 基本操作技巧 各种设置及相关问题 界面和显示相关问题 快捷键 视图设置和调整 图层 ...
- 【Get深一度】Microsoft Office 2013 Word中图片插入后变模糊解决办法
Microsoft Office 2013 Word中图片插入后变模糊解决办法 作者在使用Word时发现插入的图片变模糊了,这个问题以前也经常遇到,只是从未上心过,这次花点心思解决一下,也给众多 ...
最新文章
- vue-cli启动项目运行_SpringBoot2.0 基础案例(17):自定义启动页,项目打包和指定运行环境...
- HDU1862 EXCEL排序【排序】
- Method Area(方法区)
- isnull mysql_mysql isnull用法讲解
- linux下java基于UDP编程聊天_基于Linux下的UDP编程
- python爬虫加强版!!!!想爬哪个队伍就爬那个
- Flash网页游戏开发
- Javaweb中EL 表达式和JSTL 的使用
- 哪个计算机无法做到双屏显示,笔记本电脑怎么实现双屏显示不同的内容
- H2O.ai初步使用
- blender FLIP-Fluids 流体教程帮助系列02
- Kafka 使用SASL接入点PLAIN机制收发消息(集成Spring Boot)
- abs模型matlab,基于MATLAB/Simulink的汽车ABS建模与分析
- Pod挂载Volume失败问题分析
- ibox (bootstrap)
- 离线安装.net framework 3.5 安装失败问题(亲测可行)
- spring boot2.X word转pdf
- ESP8266-Arduino编程实例-MAG3110磁力计驱动
- 关于新版浏览器登录调试提示“登陆超时“的问题
- 键盘--外语键盘问题
热门文章
- html中边距属性,CSS边距属性
- Efficient Net_V2
- kind安装k8s集群
- 新浪微博API错误代码大全
- 错误 E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
- IE浏览器怎么查看cookie
- Unity-瓦片地图详解
- ROS重大功能,无线WISP和桥接
- 约束满足问题(Constraint Satisfaction Problems——CSPs):回溯操作,向前检验,约束传播,局部搜索
- python flask服务器假死_IE浏览器访问Flask自带服务器假死问题解决方法 - digwtx