算法训练营day32,贪心算法6

import "strconv"

//738. 单调递增的数字

func monotoneIncreasingDigits(n int) int {

str := strconv.Itoa(n)

nums := []byte(str)

length := len(nums)

if length <= 1 {

return n

}

for i := length - 1; i > 0; i-- {

//如果前一个数字比当前值大,说明不是单调递增的,把前一个数字减1,之后所有数字变成9

if nums[i-1] > nums[i] {

nums[i-1]--

for j := i; j < length; j++ {

nums[j] = '9'

}

}

}

res, _ := strconv.Atoi(string(nums))

return res

}

相关推荐
_GR14 分钟前
每日OJ题_牛客_牛牛冲钻五_模拟_C++_Java
java·数据结构·c++·算法·动态规划
ROBIN__dyc26 分钟前
表达式
算法
无限大.29 分钟前
c语言实例
c语言·数据结构·算法
六点半88834 分钟前
【C++】速通涉及 “vector” 的经典OJ编程题
开发语言·c++·算法·青少年编程·推荐算法
@haihi42 分钟前
冒泡排序,插入排序,快速排序,选择排序
数据结构·算法·排序算法
quaer1 小时前
Open-Sora全面开源?
开发语言·算法·机器学习·matlab·矩阵
Hello.Reader1 小时前
TopK算法在大数据重复数据分析中的应用与挑战
大数据·算法·数据分析
coduck_S12004zbj1 小时前
csp-j模拟五补题报告
c++·算法·图论
洛临_1 小时前
【C语言】基础篇
c语言·算法
_.Switch1 小时前
Python机器学习模型的部署与维护:版本管理、监控与更新策略
开发语言·人工智能·python·算法·机器学习