日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

力扣738-单调递增的数字(java题解)

發(fā)布時(shí)間:2023/12/29 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 力扣738-单调递增的数字(java题解) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

力扣738-單調(diào)遞增的數(shù)字

一、原題題目(中等)

1.1 題目

? 給定一個(gè)非負(fù)整數(shù) N,找出小于或等于N的最大的整數(shù),同時(shí)這個(gè)整數(shù)需要滿足其各個(gè)位數(shù)上的數(shù)字是單調(diào)遞增。
? (當(dāng)且僅當(dāng)每個(gè)相鄰位數(shù)上的數(shù)字 x 和 y 滿足 x <= y 時(shí),我們稱這個(gè)整數(shù)是單調(diào)遞增的。)

1.2 示例

  • 示例1:
    輸入: N = 10
    輸出: 9
  • 示例2:
    輸入: N = 1234
    輸出: 1234
  • 示例3:
    輸入: N = 332
    輸出: 299
  • 說(shuō)明: N 是在[0, 109]范圍內(nèi)的一個(gè)整數(shù)。

來(lái)源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/monotone-increasing-digits

二、解題思路一

2.1 題目意思理解

? 按照題目意思,我們從前往后去分析數(shù)據(jù),如果當(dāng)前位數(shù)上的值小于后一位的值時(shí),那么當(dāng)前位值要 -1,右邊的所有位置 9 。否則按照位數(shù)向右遞歸。

2.2 詳細(xì)代碼(Java)

public class Solution {public int monotoneIncreasingDigits(int N) {// 將 int 轉(zhuǎn)換成字符串再轉(zhuǎn)換成字符數(shù)組 char[] strN = Integer.toString(N).toCharArray(); int i = 1;// 找到前一個(gè)數(shù)值大于當(dāng)前數(shù)值的位置while (i<strN.length && strN[i-1]<=strN[i]) i++;// 原數(shù)字不是單調(diào)遞增的if (i<strN.length){// 前一個(gè)數(shù)值大了,執(zhí)行減一操作,減一后要檢驗(yàn)之前的while (i > 0 && strN[i-1]>strN[i]){strN[i-1]--;i--;}// 講最終修改后的位置之后都改為 9for (i+=1;i<strN.length;i++) strN[i]='9'; }return Integer.parseInt(new String(strN));} }

2.3 算法執(zhí)行結(jié)果

三、總結(jié)分析

? 從前往后遍歷,如果前面的值大于后面的值就把當(dāng)前位數(shù)減一然后把后面的值變成9,以此類推

總結(jié)

以上是生活随笔為你收集整理的力扣738-单调递增的数字(java题解)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。