LeetCode|算法|笔记:第38题:外观数列
本文答案并没有参考自LeetCode官方题解(因为没有~) 。
题目描述
【LeetCode|算法|笔记:第38题:外观数列】给定一个正整数 n(1 ≤ n ≤ 30) , 输出外观数列的第 n 项 。
注意:整数序列中的每一项将表示为一个字符串 。
「外观数列」是一个整数序列 , 从数字 1 开始 , 序列中的每一项都是对前一项的描述 。 前五项如下:
1. 1
2. 11
3. 21
4. 1211
5. 111221
第一项是数字 1
描述前一项 , 这个数是 1 即 “一个 1 ” , 记作 11
描述前一项 , 这个数是 11 即 “两个 1 ”, 记作 21
描述前一项 , 这个数是 21 即 “一个 2 一个 1 ”, 记作 1211
描述前一项 , 这个数是 1211 即 “一个 1 一个 2 两个 1 ”, 记作 111221
这是什么花里胡哨的东西 (;′д`)ゞ
我是这么理解的:
第1个数列是 【1】
第2个数列是对前一个数列的“描述”:【1】是 1 个 1 , 所以第2个数列是 【11】
第3个数列也是对前一个数列的“描述”:【11】是 2 个 1 , 所以第3个数列是 【21】
第4个数列也是对前一个数列的“描述”:【21】是 1 个 2 和 1 个 1 , 所以第4个数列是 【1211】
第5个数列也是对前一个数列的“描述”:【1211】是 1 个 1 ,1 个 2, 2 个1, 所以第5个数列是 【111221】
啊~[流泪]
【方法1】正常解法题目也说了是简单 ,
观察:如果是【n1】 , 则描述成【n1】 , 所以可以总结出:
如果是【nm】 , 则描述成【nm】
所以解法就是:
- 创建数组为前一个数组的描述 , 第n个数组就是答案
- 描述方法为:遍历前一个数组 , 记录数字m连续出现的次数n , 描述为 nm 就可以了
(>▽<)
- 算法|华硕无畏Pro14上手图赏:5K价位的屏幕天花板,配置体验无短板!
- 雷蛇|雷蛇笔记本将全面提价?网友:我宣布全面不买
- 英特尔|拒绝笔记本散热死机,这个笔记本支架我给满分
- qq浏览器|天才们的对决终于有了结果,QQ浏览器AI算法大赛落下帷幕
- 笔记本|写入120T!TLC标称寿命?QLC的金士顿NV1还活着吗?
- oled屏幕|小米笔记本Pro15最低6299元到手:锐龙7、OLED屏幕、CNC机身
- 笔记本|聊一款做到极致的笔记本,戴尔XPS 13 9310
- 笔记本|性价比高还是鸡肋?ROG 幻16笔记本
- 视频|不要迷信算法,会变得无趣
- 5G|笔记本接口究竟怎样才能不算阉割?