当前位置: 首页 > article >正文

Golang | Leetcode Golang题解之第556题下一个更大元素III

题目:

题解:

func nextGreaterElement(n int) int {
    x, cnt := n, 1
    for ; x >= 10 && x/10%10 >= x%10; x /= 10 {
        cnt++
    }
    x /= 10
    if x == 0 {
        return -1
    }

    targetDigit := x % 10
    x2, cnt2 := n, 0
    for ; x2%10 <= targetDigit; x2 /= 10 {
        cnt2++
    }
    x += x2%10 - targetDigit // 把 x2%10 换到 targetDigit 上

    for i := 0; i < cnt; i++ { // 反转 n 末尾的 cnt 个数字拼到 x 后
        d := targetDigit
        if i != cnt2 {
            d = n % 10
        }
        if x > math.MaxInt32/10 || x == math.MaxInt32/10 && d > 7 {
            return -1
        }
        x = x*10 + d
        n /= 10
    }
    return x
}

http://www.kler.cn/a/388451.html

相关文章:

  • 如何在算家云搭建Peach-9B-8k-Roleplay(文本生成)
  • Electron 项目启动外部可执行文件的几种方式
  • 【前端学习指南】Vue computed 计算属性 watch 监听器
  • 【QT】QSS
  • vue项目npm run serve出现【- Network: unavailable】(从排查到放弃)
  • 华为数通HCIA系列第5次考试-【2024-46周-周一】
  • Facebook定位不准是什么原因?
  • 零基础入门进程间通信:task 1(匿名管道与vscode使用)
  • JS如何读取JSON数据并且格式化解析?
  • 京准同步:GPS北斗卫星授时服务器发展趋势介绍
  • javascript中的 fetch API和 $.ajax API
  • 24年11月架构考试题里的两道小学数学题
  • ⭐SmartControl: Enhancing ControlNet for Handling Rough Visual Conditions
  • 使用Go语言编写一个简单的NTP服务器
  • 《重学Java设计模式》之 建造者模式
  • 第三十八章 章节练习之面经页面
  • (一)<江科大STM32>——软件环境搭建+新建工程步骤
  • conda 启动时添加执行脚本
  • 优化布线拥塞
  • vue/react做多语言国际化的时候,在语言配置中不同的语言配置不同的字体,动态引入scss里面
  • spring gateway 动态路由
  • Python pandas库:强大的数据处理工具
  • NoSQL大数据存储技术测试(2)NoSQL数据库的基本原理
  • DU模拟器(S5040A Open RAN Studio Player and Capture Appliance)
  • OSS和FastDFS的详细比较
  • 宝塔面板中使用Acme SSL.cn申请的免费HTTPS SSL证书安装步骤