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;
    }
  • 相关阅读:
    如何在VS2013中进行Boost单元测试
    C++项目中的extern "C" {}(转)
    C/C++语言中NULL、'’和0的区别
    关于C++“加、减机制”的整理
    C++继承中的public/protected/private
    Systemc在VC++2010安装方法及如何在VC++2010运行Noxim模拟器
    Testbench(转)
    Java高级特性之泛型
    Java高级特性之反射
    Java 输入输出流
  • 原文地址:https://www.cnblogs.com/wdan2016/p/6030830.html
Copyright © 2011-2022 走看看