剑指offer面试题 圆圈中最后剩下的数字(约瑟夫环问题)

题目描述:0,1,....,n-1 这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字。

求出这个圆圈里剩下的最后一个数字。


经典解法:用环形链表模拟圆圈,效率低时间复杂度O(mn)同时需要辅助空间空间复杂度O(n)

剑指offer面试题 圆圈中最后剩下的数字(约瑟夫环问题)_第1张图片

剑指offer面试题 圆圈中最后剩下的数字(约瑟夫环问题)_第2张图片

创新解法:时间复杂度O(n)空间复杂度O(1)

剑指offer面试题 圆圈中最后剩下的数字(约瑟夫环问题)_第3张图片

剑指offer面试题 圆圈中最后剩下的数字(约瑟夫环问题)_第4张图片



















你可能感兴趣的:(剑指offer面试题 圆圈中最后剩下的数字(约瑟夫环问题))