博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
求不大于N的最大整数(各位单调不减)Monotone Increasing Digits
阅读量:6706 次
发布时间:2019-06-25

本文共 910 字,大约阅读时间需要 3 分钟。

  hot3.png

问题:

Given a non-negative integer N, find the largest number that is less than or equal to N with monotone increasing digits.

(Recall that an integer has monotone increasing digits if and only if each pair of adjacent digits x and y satisfy x <= y.)

Example 1:

Input: N = 10Output: 9

Example 2:

Input: N = 1234Output: 1234

Example 3:

Input: N = 332Output: 299

Note: N is an integer in the range [0, 10^9].

解决:

① 给定整数N,求不大于N的最大整数,其各位数单调不减。

从高位向低位遍历整数N的各位数,找到第一个违反单调不减的数的下标x,将x位上的数-1,将x位后的所有数替换为9.

class Solution { //22ms

    public int monotoneIncreasingDigits(int N) {
            String s = String.valueOf(N);
            char[] schar = s.toCharArray();
            int len = schar.length;
            int j = len;
            for (int i = len - 1;i > 0;i --){
                if (schar[i] >= schar[i - 1]) continue;
                schar[i - 1]--;
                j = i;
            }
            for (int i = j;i < len;i ++){
                schar[i] = '9';
            }
            return Integer.parseInt(String.valueOf(schar));
    }
}

转载于:https://my.oschina.net/liyurong/blog/1608872

你可能感兴趣的文章
linker源码解析
查看>>
阿里云大数据计算服务MaxCompute(下篇)
查看>>
Android WebSocket实践
查看>>
机遇与挑战并存,神画科技玩转智能投影并不易
查看>>
从天猫TES看行业升级:消费电子智能化已成趋势
查看>>
Java中常用的容器类笔记
查看>>
Vue 中 extend / component / mixins / extends 的区别
查看>>
源码解读:php artisan serve
查看>>
AES加密解密技术
查看>>
Goutte基本用法
查看>>
理解C语言中的关键字extern
查看>>
微信小程序项目总结(一)
查看>>
RestTemplate设置通用header
查看>>
PHP foreach原理详解
查看>>
Spring Transaction详解 - Transaction Propagation模式
查看>>
关于javascript函数式编程中compose的实现
查看>>
webpack入门
查看>>
拥抱PostgreSQL,红帽再表态:SSPL的MongoDB坚决不用
查看>>
乐视云计算被列入失信名单;三星华为达成和解;Python3 采用率超 84%丨Q新闻
查看>>
PHP执行原理
查看>>