算法训练营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

}

相关推荐
地平线开发者3 小时前
SparseDrive 模型导出与性能优化实战
算法·自动驾驶
董董灿是个攻城狮3 小时前
大模型连载2:初步认识 tokenizer 的过程
算法
地平线开发者4 小时前
地平线 VP 接口工程实践(一):hbVPRoiResize 接口功能、使用约束与典型问题总结
算法·自动驾驶
罗西的思考4 小时前
AI Agent框架探秘:拆解 OpenHands(10)--- Runtime
人工智能·算法·机器学习
HXhlx7 小时前
CART决策树基本原理
算法·机器学习
Wect8 小时前
LeetCode 210. 课程表 II 题解:Kahn算法+DFS 双解法精讲
前端·算法·typescript
颜酱8 小时前
单调队列:滑动窗口极值问题的最优解(通用模板版)
javascript·后端·算法
太凉10 小时前
select 语句详解
go
想用offer打牌13 小时前
一站式了解四种限流算法
java·后端·go
Gorway15 小时前
解析残差网络 (ResNet)
算法