华为2021春招笔试: 约瑟夫环III

笔试遇到一个约瑟夫环 (人们站在一个等待被处决的圈子里。 计数从圆圈中的指定点开始,并沿指定方向围绕圆圈进行。 在跳过指定数量的人之后,处刑下一个人。 对剩下的人重复该过程,从下一个人开始,朝同一方向跳过相同数量的人,直到只剩下一个人,并被释放) 的变体:
给定人数和报数后要求输出依次出列的人的初始编号.

我用python数列模拟了整个报数过程, 但是算法超时,只AC了40%. (不知道用c++链表能不能100%AC.)

约瑟夫环原题是求最后幸存者的初始编号, 有递推公式
不知有没有类似的数学分析方法可以求出每轮出列的编号呀

#华为#
全部评论

相关推荐

点赞 评论 收藏
转发
1 3 评论
分享
牛客网
牛客企业服务