zoukankan      html  css  js  c++  java
  • 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0...m-1报数....这样下去....直到剩下

    // test20.cpp : 定义控制台应用程序的入口点。
    //

    #include "stdafx.h"
    #include<iostream>
    #include<vector>
    #include<string>
    #include<queue>
    #include<stack>
    #include<cstring>
    #include<string.h>
    #include<deque>
    #include <forward_list>
    
    using namespace std;
    
    
    class Solution {
    public:
    	int LastRemaining_Solution(unsigned int n, unsigned int m)
    	{
    		//双向队列里面,删除比较方便
    		if (n == 0||m==0) return -1;
    
    		vector<unsigned int> vec; //存储正在操作的数组
    		vector<unsigned int> copy; //存储临时拷贝的数组
    		for (unsigned int i = 0;i < n;i++)
    			vec.push_back(i);
    	 //	copy = vec;
    	
    		while (vec.size()!=1)
    		{
    			int len = vec.size();
    			int flag = m%len;//如果没有余数,删除最后一个数;有余数,删除余数减1的数
    			if (flag == 0)
    			{
    				for (int i = 0;i <len -1;++i)
    				{
    					copy.push_back(vec[i]);
    				}
    				vec.clear();
    				vec = copy;
    				copy.clear();
    			}
    			else
    			{
    				for (int i = flag;i <len ;++i)
    				{
    					copy.push_back(vec[i]);
    				}
    				for (int i = 0;i < flag - 1;++i)
    				{
    					copy.push_back(vec[i]);
    				}
    				vec.clear();
    				vec = copy;
    				copy.clear();
    			}			   
    		}
    		cout << "vec[0]:" << vec[0] << endl;
    		return vec[0];
    	}
    };
    int main()
    {
    	
    	Solution so;
    //	vector<int> numbers = { 1,2,3,4,5 };
     /*   bool result=so.IsContinuous(numbers);
    	cout <<"result:"<< result << endl;*/
    
    	int result = so.LastRemaining_Solution(5,3);
    	cout << "result:" << result << endl;
    
    	cout << endl;
    	return 0;
    }
  • 相关阅读:
    【每日日报】第五十三天安装My SQL
    【每日日报】第五十一天jsp
    【每日日报】第五十四天
    JDK安装和卸载
    JDK的卸载和安装
    【每日日报】第五十二天
    【每日日报】第五十六天
    基于图书管理系统的查
    Android学习——day5
    每日日报2020.7.26 1905
  • 原文地址:https://www.cnblogs.com/wdan2016/p/6030830.html
Copyright © 2011-2022 走看看