一开始想到的使用一个链表实现这个功能,当计数到时直接删除那个节点,如此循环,最后一个节点就是幸运星。
但是这次我重新思考,觉得使用链表还是太过于复杂,因此我这次使用了一个vector来时,当符合计数条件时,直接移除这个数据,最后vector大小为1的时候,就是找到了幸运星。
class Solution {
public:
int LastRemaining_Solution(int n, int m)
{
if(n<=0)
return -1;
if(n==1)
return n;
vector<int> children(n);
for(int i = 0;i<children.size();i++)
children[i] = i;
int temp = 0;
while(children.size()>1)
{
int count = temp+m-1;
int size = children.size();
int num = count%size;
temp = num;
children.erase(children.begin()+num);
}
return children[0];
}};



京公网安备 11010502036488号