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 插入后的最大值(中等 贪心)相关推荐

  1. LeetCode——1834. 单线程 CPU(Single-Threaded CPU)[中等]——分析及代码(Java)

    LeetCode--1834. 单线程 CPU[Single-Threaded CPU][中等]--分析及代码[Java] 一.题目 二.分析及代码 1. 优先队列 (1)思路 (2)代码 (3)结果 ...

  2. leetcode 57. 插入区间 58. 最后一个单词的长度

    leetcode 57. 插入区间 58. 最后一个单词的长度 57. 插入区间 难度中等512收藏分享切换为英文接收动态反馈 给你一个 无重叠的 *,*按照区间起始端点排序的区间列表. 在列表中插入 ...

  3. 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 ...

  4. 去除U盘插入后自动弹框的问题

    U盘插入后自动弹框,这个很影响平时的操作,现在介绍下去除的办法: 1.   打开"控制面板",选择"硬件和声音",,点击进入. 把"为所有媒体和设备使 ...

  5. Leetcode: 二叉树的后序遍历

    Leetcode: 二叉树的后序遍历 后遍历的流程:一直往下走,把路口记下来,假如路口有馒头,我们是不吃的,因为要先吃最后的,中间的岔路如果有岔路,就把右边的岔路记下来,但是因为右边没有走过,所以访问 ...

  6. 关于移动硬盘插入后无显示的问题

    项目场景: 最近在做实验,虚拟机都装在移动硬盘上,有一天晚上突然发现移动硬盘插入后无反应(有提示音但一直没显示磁盘),一开始还以为是local print queue驱动的问题,因为刚好驱动精灵诊断该 ...

  7. CAD中插入外部参照字体会变繁体_为什么CAD图纸作为外部参照插入后有些文字消失?...

    下面是本公众号文章分类目录,点击标题文字可打开分类文章列表: 安装卸载  异常.退出  文件及输入输出  基本操作技巧  设置及相关问题  界面和显示  快捷键  视图设置 选择及组 坐标输入.定位  ...

  8. 银行卡在ATM机器上插入后显示IC磁条芯片卡拒绝交易解决办法

    描述:银行卡在ATM机器上插入后显示IC磁条芯片卡拒绝交易解决办法 步骤: 取出银行卡,将银行卡放在银行卡IC卡感应位置 ATM机主页面选择 非IC卡业务,最后会识别并可以取钱,成功 成功后将银行卡再 ...

  9. CAD中插入外部参照字体会变繁体_为什么在原点附近的图纸作为外部参照插入后却离插入点很远?...

    下面是本公众号文章分类目录,点击标题文字可打开分类文章列表: 安装卸载  异常.退出  文件及输入输出  基本操作技巧  各种设置及相关问题  界面和显示相关问题  快捷键  视图设置和调整  图层  ...

  10. 【Get深一度】Microsoft Office 2013 Word中图片插入后变模糊解决办法

     Microsoft Office 2013 Word中图片插入后变模糊解决办法 作者在使用Word时发现插入的图片变模糊了,这个问题以前也经常遇到,只是从未上心过,这次花点心思解决一下,也给众多 ...

最新文章

  1. vue-cli启动项目运行_SpringBoot2.0 基础案例(17):自定义启动页,项目打包和指定运行环境...
  2. HDU1862 EXCEL排序【排序】
  3. Method Area(方法区)
  4. isnull mysql_mysql isnull用法讲解
  5. linux下java基于UDP编程聊天_基于Linux下的UDP编程
  6. python爬虫加强版!!!!想爬哪个队伍就爬那个
  7. Flash网页游戏开发
  8. Javaweb中EL 表达式和JSTL 的使用
  9. 哪个计算机无法做到双屏显示,笔记本电脑怎么实现双屏显示不同的内容
  10. H2O.ai初步使用
  11. blender FLIP-Fluids 流体教程帮助系列02
  12. Kafka 使用SASL接入点PLAIN机制收发消息(集成Spring Boot)
  13. abs模型matlab,基于MATLAB/Simulink的汽车ABS建模与分析
  14. Pod挂载Volume失败问题分析
  15. ibox (bootstrap)
  16. 离线安装.net framework 3.5 安装失败问题(亲测可行)
  17. spring boot2.X word转pdf
  18. ESP8266-Arduino编程实例-MAG3110磁力计驱动
  19. 关于新版浏览器登录调试提示“登陆超时“的问题
  20. 键盘--外语键盘问题

热门文章

  1. html中边距属性,CSS边距属性
  2. Efficient Net_V2
  3. kind安装k8s集群
  4. 新浪微博API错误代码大全
  5. 错误 E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
  6. IE浏览器怎么查看cookie
  7. Unity-瓦片地图详解
  8. ROS重大功能,无线WISP和桥接
  9. 约束满足问题(Constraint Satisfaction Problems——CSPs):回溯操作,向前检验,约束传播,局部搜索
  10. python flask服务器假死_IE浏览器访问Flask自带服务器假死问题解决方法 - digwtx