求解序列 1,2,2,3,3,3,4,4,4,4,5,5,5,5,5...n,n,n 同时支持返回第pos 个元素的值
def get_seq_and_pos(N, pos):
"""
求解序列 1,2,2,3,3,3,4,4,4,4,5,5,5,5,5...n,n,n 同时支持返回第pos 个元素的值
:param N: 序列最大值
:param pos: 序列中的第pos个元素.从1开始
:return: 返回上述序列构成的一个列表
"""
if N < 0 or pos <= 0:
return 'typeError'
else:
# 用计数排序的思想构造辅助列表。下标0 对应值0,下标1对应值1...
ls1 = list(i for i in xrange(N+1))
# 保存最终的序列,是一个列表
res = []
for i in xrange(len(ls1)):
res += ls1[i]*[i]
return res, res[pos-1]
print get_seq_and_pos(4, 7)
用计数排序的思想进行求解。核心是
res += ls1[i]*[i]
除特殊说明外,其余所有文章均属原创。未经允许,请勿进行转载或者其他操作
有问题欢迎留言交流
浙公网安备 33010602011771号