最近面试遇到的一个算法:标号1-n的n个人首尾相接,1到3报数,报到3的退出,求最后一个人的标号。
思路:
1.把所有人先放入数组中,多出一个下标为0,所以size为n+1
2.当报到m的人,且dead不等于n-1时,此人退出游戏,这时候把数组中这个值置为0,报数从新开始
3.如果这个人报数等于m,并且已经死了n-1个人,说明当前这个人就是最后的一个
|
|
最近面试遇到的一个算法:标号1-n的n个人首尾相接,1到3报数,报到3的退出,求最后一个人的标号。
思路:
1.把所有人先放入数组中,多出一个下标为0,所以size为n+1
2.当报到m的人,且dead不等于n-1时,此人退出游戏,这时候把数组中这个值置为0,报数从新开始
3.如果这个人报数等于m,并且已经死了n-1个人,说明当前这个人就是最后的一个
|
|
热评文章