有一种“排序算法”,有时称为斯大林排序,为了对列表进行排序,您只需从列表中删除元素,直到元素按递增的顺序排序。例如,列表
[1, 2, 4, 5, 3, 6, 6]当使用斯大林排序时
[1, 2, 4, 5, 6, 6]这三个人被移走了,因为这是不正常的。
现在,显然有许多方法可以删除元素来排序列表。例如,任何小于两个元素的列表都必须进行排序,因此只要盲目地删除足够的元素,我们就可以对列表进行排序。既然是这样的话,我们只关心斯大林那一类可能最长的结果。
您的任务将是获取一个正整数列表,并输出通过从原始列表中删除元素可以得到的最长排序(递增)列表的长度。即找到最长排序(可能是不连续的)子列表的长度。
排序列表可以连续多次使用相同的元素。除非程序本身是空的,否则不需要支持空列表。
你的答案将以它自己最长的斯大林类型的长度来衡量。程序将被解释为一个字节序列,而不是字符,它们的顺序将是通过将字节解释为数字而产生的自然顺序。分数越低越好。
这是整洁的工具帮助你得分的答案。
[1, 2, 4, 5, 3, 6, 6] -> 6
[19, 2] -> 1
[3, 3, 4, 3] -> 3
[10] -> 1
[1, 2, 4, 9] -> 4
[1, 90, 2, 3, 4, 5] -> 5
[1, 90, 91, 2, 3, 4, 5] -> 5发布于 2018-10-30 16:11:42
https://codegolf.stackexchange.com/questions/174964
复制相似问题