当前位置: 首页 > article >正文

贪心算法解决单调递增数字问题

代码随想录链接:代码随想录

思路:

定义一个变量flag,表示需要将之后的数字全部变成9的位置

从后遍历数字中的每一位,如果遍历到第i位数字时它的前一位数字比它大(严格大于),令它前一位数字减1,同时令flag=i

遍历结束后,令该数字的第flag位及其之后的全部数字都变成9

最后返回最终的数字即可

代码:

class Solution {
    public int monotoneIncreasingDigits(int N) {
        String[] strings = (N + "").split("");
        int start = strings.length;
        for (int i = strings.length - 1; i > 0; i--) {
            if (Integer.parseInt(strings[i]) < Integer.parseInt(strings[i - 1])) {
                strings[i - 1] = (Integer.parseInt(strings[i - 1]) - 1) + "";
                start = i;
            }
        }
        for (int i = start; i < strings.length; i++) {
            strings[i] = "9";
        }
        return Integer.parseInt(String.join("",strings));
    }
}


http://www.kler.cn/a/457097.html

相关文章:

  • ArcGIS JSAPI 高级教程 - 通过RenderNode实现视频融合效果(不借助三方工具)
  • 抖音电商全年销售154亿单产业带商品,830个产业带销售额过亿
  • NVR小程序接入平台EasyNVR使用FFmpeg取流时提示错误是什么原因呢?
  • 【杂谈】-AI搜索引擎如何改变传统SEO及其在内容营销中的作用
  • word中插入zotero引用
  • 【JAVA】Java常用注解汇总
  • Vivado常用IP例化1
  • Go语言zero项目服务恢复与迁移文档
  • 谈谈前端对链表的理解
  • Kinova在开源家庭服务机器人TidyBot++研究里大展身手
  • C#实验室信息系统源码,检验流程信息化LIS系统
  • Spring创建异步线程池方式
  • Linux 安装rpm
  • Android图形绘制之Shapes包详解
  • 关于Mysql表结构的元数据锁
  • ElasticSearch 统计分析全攻略
  • 数据结构课程设计/校园导游程序及通信线路设计 #2
  • P1588 [USACO07OPEN] Catch That Cow S 洛谷 BFS-最短路思想
  • Leetcode 283-移动零
  • FPGA抗单粒子容错的方法
  • 【信息系统项目管理师】高分论文:论信息系统项目的资源管理(阳光信访工作平台)
  • 国家发改委低空经济发展司亮相,CES Asia 2025低空经济展区受关注
  • flask后端开发(5):jinjia中if、for控制语句
  • Erlang语言的数据结构
  • c++入门——c++输入cin和输出cout的简单使用
  • Pandas04