做外貿(mào)找客戶的網(wǎng)站寧波公司做網(wǎng)站
738.單調(diào)遞增的數(shù)字
當(dāng)且僅當(dāng)每個(gè)相鄰位數(shù)上的數(shù)字 x
和 y
滿足 x <= y
時(shí),我們稱這個(gè)整數(shù)是單調(diào)遞增的。
給定一個(gè)整數(shù) n
,返回 小于或等于 n
的最大數(shù)字,且數(shù)字呈 單調(diào)遞增 。
示例 1:
輸入: n = 10
輸出: 9
示例 2:
輸入: n = 1234
輸出: 1234
示例 3:
輸入: n = 332
輸出: 299
思路
比較前后兩個(gè)位上的數(shù)字大小即可,需要注意的點(diǎn)是取數(shù)字(我這里做法是轉(zhuǎn)換為string然后按位取出減去‘0’的ascall碼),還有比較后組成新的數(shù)字方式以及回撤順序進(jìn)行比較的方式。
代碼
public int monotoneIncreasingDigits(int n) {int len=String.valueOf(n).length();int pre= ((int) String.valueOf(n).charAt(0))-48;int ans=pre;int i=1;while (i<len){int temp= ((int) String.valueOf(n).charAt(i))-48;if (pre>temp){n= (int) ((ans-1)*Math.pow(10,len-i)+Math.pow(10,len-i)-1);if (i>1){i=i-1;pre=((int) String.valueOf(n).charAt(i-1))-48;ans=ans/10;continue;}else return n;}else ans=ans*10+temp;i++;pre=temp;}return n;}