62.圆圈中最后剩下的数字

能想到的就是用一个链表来做这道题,将这些数都放进一个链表中,然后移动,移动到对应数的时候就进行删除,我直接用的java里面的list来做的,可以list.remove()删除某个节点,这里要注意的是,删除也是从第0开始算的,而不是1.还有一个关键是找到每m个数删除一个节点,这里不超出链表最大size的方法就是  (t+m-1)%list.size(),通过求模控制范围一直在n里面。

代码如下:

至于通过数学方法来解这道题,我自己觉得是特殊解法,就没有去了解

发布了208 篇原创文章 · 获赞 0 · 访问量 5982

猜你喜欢

转载自blog.csdn.net/qq_40058686/article/details/104606392