题解 | #孩子们的游戏(圆圈中最后剩下的数)#

孩子们的游戏(圆圈中最后剩下的数)

https://www.nowcoder.com/practice/f78a359491e64a50bce2d89cff857eb6

public class Solution {
  // 方式一:递归
  public int LastRemaining_Solution(int n, int m) {
        return (n == 1) ? 0 : (LastRemaining_Solution(n - 1, m) + m) % n;
    }
  // 方式二:非递归
  public int LastRemaining_Solution2(int n, int m) {
        int res = 0;
        for (int i = 2; i <=n; i++) {
            res = (res+m)%i;
        }
        return 0;
    }
}

解题思想:约瑟夫环问题,公式:f(n,m)=(f(n-1,m)+m)%n

#算法##算法笔记#
全部评论

相关推荐

01-30 16:13
浙江大学 Java
点赞 评论 收藏
分享
01-29 15:45
已编辑
华中科技大学 前端工程师
COLORSN:可以试一下,小厂看技术栈是不是很落后,如果太拉胯就别去,个人认为有实习氛围比你自己琢磨要高效不少,然后就是小厂其实也有可能会问的很难,这都比较难说,还是看自己项目含金量够不够,寒假还能不能推进学习再选择,毕竟去实习过年就10天假了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务