Luuman's Blog

因为有了危机感,所以会义无反顾。


  • Home

  • About

  • Archives

  • Search

LeetCode 报数

Posted on 2019-07-27 Edited on 2019-09-20 In LeetCode

自用笔记:报数序列是指一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:

  1. 1
  2. 11
  3. 21
  4. 1211
  5. 111221
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function showNum (num, n = 1) {
let funss = (m,n)=> Array.apply(null,new Array(m)).map(()=>n++)
let arr = funss(num, n)
arr.forEach((arrA, key) => {
if (key) {
let arrY = String(arr[key - 1]).split('')
let arrB = []
arrY.filter((item, index) => {
if (index && item == arrY[index - 1]) {
arrB[arrB.length - 1] += item
} else {
arrB.push(item)
}
})
arr[key] = arrB.map(item => `${item.length}${item.slice(0, 1)}`).join('')
}
})
return arr[num - 1]
}
console.log(showNum(10))
1
2
3
4
5
6
7
8
9
10
11
function showNum(key) {
let Arr = new Array(key).fill('').map((item, index) => String(index + 1));
Arr.reduce((ArrA, ArrB) => {
let redA = ArrA == 1 ? '11' : ArrA.split('').reduce((arrC, arrD) => {
return arrC.length - 1 == 0 ? arrC == arrD ? `2${arrD}` : `1${arrC}1${arrD}` : arrC.slice(arrC.length - 1, arrC.length) == arrD ? `${arrC.slice(0, arrC.length - 2 > 0 ? arrC.length - 2 : 0)}${+arrC.slice(arrC.length - 2, arrC.length - 1) + 1}${arrD}` : `${arrC}1${arrD}`
})
console.log("ArrB", ArrB, redA)
return redA
})
}
showNum(10)
# LeetCode
小程序知识点总结
Hexo 添加搜索功能

Luuman

爱折腾,爱运动,更爱游离于错综复杂的编码与逻辑中,无法自拔。相信编程是一门艺术,自诩为游弋在代码里的人生。
92 posts
19 categories
36 tags
友情链接
  • 编程の趣
  • 翁天信
  • MOxFIVE
  • Meicai
广告位 广告位 广告位
© 2019 Luuman
Powered by Hexo v3.9.0
|
Theme – Nice.Gemini v7.3.0