给出一个非负整数,找到这个非负整数中包括的最大递减数。一个数字的递减数是指相邻的数位从大到小排列的数字。
如: 95345323,递减数有:953,95,53,53,532,32, 那么最大的递减数为953。
假设输入的数字为负数,返回-1。
假设找不到递减数,也返回-1.

代码实现:

package huaweiimport ("fmt""sort""strconv"
)func Test5Base() {num := 431492degressiveNums := getDegressiveNums(num)max := -1if len(degressiveNums) > 0 {max = getMax(degressiveNums)}fmt.Println("max:", max)
}//获取num的全部递减数
func getDegressiveNums(num int) []int {if num < 0 {return []int{-1}}degressiveNums := make([]int, 0)numStr := strconv.Itoa(num)length := len(numStr)//长度为i的子串for i := 2; i < length; i++ {//从j開始截取for j := 0; j < length-i+1; j++ {//截取数字n, err := strconv.Atoi(numStr[j : j+i])checkError(err, "string to integer")//是否为递减数if isDegressive(n) {degressiveNums = append(degressiveNums, n)}}}return degressiveNums
}//推断数字num是否是递减数
func isDegressive(num int) bool {weishu := make([]int, 0)for num >= 1 {n := num % 10weishu = append(weishu, n)num /= 10}return sort.IntsAreSorted(weishu)
}//获取一个slice中最大的数
func getMax(nums []int) int {if len(nums) == 0 {panic("empty slice.")}max := nums[0]for i := 1; i < len(nums); i++ {if nums[i] > max {max = nums[i]}}return max
}

转载于:https://www.cnblogs.com/mengfanrong/p/5316266.html

算法基础:最大递减数问题(Golang实现)相关推荐

  1. 20瓶可乐java,【Java】Java初级算法基础 ,可乐瓶数问题

    [Java] 纯文本查看 复制代码/** * 28人买可乐喝,3个可乐瓶盖可以换一瓶可乐, 那么要买多少瓶可乐,够28人喝? 假如是50人,又需要买多少瓶可乐? * */ public class C ...

  2. java 最大递减数_算法基础:最大递减数问题(Golang实现)

    给出一个非负整数,找到这个非负整数中包括的最大递减数.一个数字的递减数是指相邻的数位从大到小排列的数字. 如: 95345323,递减数有:953,95,53,53,532,32, 那么最大的递减数为 ...

  3. 如何用算法把一个十进制数转为十六进制数-C语言基础

    这一篇文章要探讨的是"如何用算法实现十进制转十六进制"并不涉及什么特别的知识点.属于C语言基础篇. 在翻找素材的时候,发现一篇以前写的挺有意思的代码,这篇代码里面涉及的知识点没有什 ...

  4. 2023牛客寒假算法基础集训营4_20230130「向上取整」「夹逼dp」「lowbit科学+树状数组性质」「搜索」「倍增跳表」「莫队」

    6/13 教育场是有被教育到.(预计会鸽几题. 已过非太水的题们 //B //https://ac.nowcoder.com/acm/contest/46812/B//小构造小数学#include & ...

  5. 算法基础、算法比赛快速入门(java)

    想用Java快速入门算法?这篇文章你得看! 提示:本文章适合想要入门算法,并且想 "快速" 达到一定成果的同学们阅读~ 文章非常非常非常长(可能是你见过最长的算法基础篇章)!!! ...

  6. 为什么神经元有数千个突触,一个新皮质中的序列记忆理论(HTM算法基础)

    为什么神经元有数千个突触,一个新皮质中的序列记忆理论(HTM算法基础) Jeff Hawkins* and Subutai Ahmad Numenta, Inc., Redwood City, CA, ...

  7. 《Python程序设计与算法基础教程(第二版)》江红 余青松 全部章节的课后习题,上机实践,课后答案,案例研究

    (还在更新中-) 这篇博客花费了我的大量时间和精力,从创作到维护:若认可本篇博客,希望给一个点赞.收藏 并且,遇到了什么问题,请在评论区留言,我会及时回复的 这本书对Python的知识点的描述很详细, ...

  8. 算法基础-十大排序算法及其优化(文末有抽奖福利哦)

    算法基础-十大排序算法及其优化 算法基础-十大排序算法及其优化 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Kw1LA5Q4-1607527572080)(/uplo ...

  9. 送书 | 你一定能看懂的算法基础书(代码示例基于Python)

    本文引自图灵教育<算法图解> 你一定能看懂的算法基础书:代码示例基于Python:400多个示意图,生动介绍算法执行过程:展示不同算法在性能方面的优缺点:教会你用常见算法解决每天面临的实际 ...

最新文章

  1. 和12岁小同志搞创客开发:手撕代码,做一款数字骰子
  2. qt中的数据库可以创建在主函数中吗_在qt中怎么建立数据库
  3. 【python数据挖掘课程】十四.Scipy调用curve_fit实现曲线拟合
  4. java 两个字段排序,如何在Java中按两个字段排序?
  5. HDU2078 复习时间【水题】
  6. 【POJ2386】Lake Counting
  7. 2022年下半年软件设计师下午真题及答案解析
  8. 如何用python编程编一个可以盗qq的_利用 Python 编写一个类似 QQ 截图的小工具应该怎么入手?...
  9. 机器学习(八):样本分布不均衡问题的处理
  10. VML 魅力初现--美少女图(vml可以这样强大?)
  11. 小米6自动重启android,小米6充电重启怎么办?小米6充电自动重启解决方法介绍...
  12. scratch鲜为人知的技巧-初级篇
  13. 戴口罩的这一年,AI产业如何“重启、重塑、重构”?
  14. 张生情迷崔莺莺,襄王意欲会神女——新说莺莺传之二
  15. 蓝桥杯—拉马车—思路透彻
  16. 树莓派siri homekit_米家设备也能喊 Siri 控制,手把手教你把米家设备接入 Homekit
  17. 7月Python和机器学习最佳开源项目Top 10!都在收藏!
  18. 元宇宙与虚拟现实(二)
  19. Python 信号处理 signal 模块
  20. xpath爬取我爱我家杭州地区租房网

热门文章

  1. pythonfind_python实现find -name的功能
  2. nginx: [emerg] duplicate “log_format“ name “main“ in /usr/local/phpstudy/vhost/sys/nginx/sys.conf:11
  3. 在Windows系统安装Nodejs
  4. 【sprinb-boot】排除/不加载某些Bean
  5. 【sprinb-boot】资源、配置、lib分离打包
  6. html filter 作用,css滤镜有什么作用?
  7. python mysql library popular_【过时】MySQLdb:Python 操作 MySQL 数据库
  8. PHP堆实现TopK算法实例,top-k 算法浅析
  9. html自定义列表第三层嵌套,【微信小程序】关于微信小程序多层嵌套渲染列表以及嵌套列表中数据的获取...
  10. ci mysql操作_CI框架数据库各类操作