题目如下:

Stepping Number is an integer such that all of its adjacent digits have an absolute difference of exactly 1. For example, 321 is a Stepping Number while 421 is not.

Given two integers low and high, find and return a sorted list of all the Stepping Numbers in the range [low, high] inclusive.

Example 1:

Input: low = 0, high = 21
Output: [0,1,2,3,4,5,6,7,8,9,10,12,21]

Constraints:

  • 0 <= low <= high <= 2 * 10^9

解题思路:如果x是一个Stepping Number,假设x的个位是y,那么x*10 + y - 1 (y-1 >=0) 和 x*10 + y + 1 (y+1<=9) 也是Stepping Number,根据这个规律把所有符合条件的数字求出来即可。

代码如下:

class Solution(object):
def countSteppingNumbers(self, low, high):
"""
:type low: int
:type high: int
:rtype: List[int]
"""
queue = range(0,10)
res = set()
while len(queue) > 0:
val = queue.pop(0)
if val >= low and val <= high:
res.add(val)
last = int(str(val)[-1])
if last < 9:
new_val = int(str(val) + str(last+1))
if new_val <= high:
queue.append(new_val)
if last > 0:
new_val = int(str(val) + str(last-1))
if new_val <= high:
queue.append(new_val)
return sorted(list(res))

最新文章

  1. JS 脚本最后加载
  2. jquery.tmpl.js 模板引擎用法
  3. Mac使用入门
  4. Crt单元
  5. Java中sleep()和wait()的区别
  6. 服务器判断客户端为移动端还是PC端
  7. LightOj 1096 - nth Term (矩阵快速幂,简单)
  8. Java笔记(一)&hellip;&hellip;概述
  9. uboot之board.c源码分析
  10. 高性能消息队列 CKafka 核心原理介绍(上)
  11. Java代码输出是“father”还是“child”(一)
  12. 深度学习之自编码器AutoEncoder
  13. Caching漫谈--关于Cache的几个理论
  14. ajax之async属性
  15. Deep Learning for NLP
  16. 洛谷P4135 作诗
  17. ROS知识(20)----SLAM资源集合
  18. AtCoder Beginner Contest 115 Solution
  19. php解析HTML
  20. oracle 跨库访问

热门文章

  1. Excel输入公式后只显示公式却不计算如何解决?
  2. luogu P3959(2017noipTG D2T2
  3. 文件操作:w,w+,r,r+,a,wb,rb
  4. windows server 2008 R2 Enterprise 防火墙开启允许远程桌面登录
  5. 22-Perl Socket 编程
  6. java lesson20homework
  7. 对接外网post,get接口封装类库
  8. QT之QString的arg方法
  9. linux mint 安装微信
  10. 创建json对象