g0701_0800.s0738_monotone_increasing_digits.Solution Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of leetcode-in-java21 Show documentation
Show all versions of leetcode-in-java21 Show documentation
Java-based LeetCode algorithm problem solutions, regularly updated
package g0701_0800.s0738_monotone_increasing_digits;
// #Medium #Math #Greedy #2022_03_25_Time_0_ms_(100.00%)_Space_39.5_MB_(82.97%)
/**
* 738 - Monotone Increasing Digits\.
*
* Medium
*
* An integer has **monotone increasing digits** if and only if each pair of adjacent digits `x` and `y` satisfy `x <= y`.
*
* Given an integer `n`, return _the largest number that is less than or equal to_ `n` _with **monotone increasing digits**_.
*
* **Example 1:**
*
* **Input:** n = 10
*
* **Output:** 9
*
* **Example 2:**
*
* **Input:** n = 1234
*
* **Output:** 1234
*
* **Example 3:**
*
* **Input:** n = 332
*
* **Output:** 299
*
* **Constraints:**
*
* * 0 <= n <= 109
**/
public class Solution {
public int monotoneIncreasingDigits(int n) {
for (int i = 10; n / i > 0; i *= 10) {
int digit = (n / i) % 10;
int endnum = n % i;
int firstendnum = endnum * 10 / i;
if (digit > firstendnum) {
n -= endnum + 1;
}
}
return n;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy