求解序列 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]

猜你喜欢

转载自www.cnblogs.com/LiuBingBlogs/p/11694894.html