循环模拟

删数

http://www.nowcoder.com/questionTerminal/f9533a71aada4f35867008be22be5b6e

vector和list和queue三种解法。

1.vector使用迭代器和erase进行删除模拟:

#include<iostream>
#include<vector>
using namespace std;
int main(){
    int n,flag;
    vector<int> vec;
    while(cin>>n){
        if(n>1000)n=999;
        vec.clear();
        for(int i=0;i<n;i++){
            vec.push_back(i);
        }
        auto it=vec.begin();
        while(vec.size()>1){
            if(it+2==vec.end()){
                it=vec.begin();
            }else if(it+1==vec.end()){
                it=vec.begin()+1;
            }else if(it==vec.end()){
                it=vec.begin()+2;
            }else it+=2;
            it=vec.erase(it);
            if(it==vec.end())it=vec.begin();
        }
        cout<<vec[0]<<endl;
    }
    return 0;
}
全部评论

相关推荐

06-13 12:13
已编辑
东北大学 射频工程师
26毕业的,日常实习还能找到吗
求实习的青提很想去大厂:目前应该还有hc吧,腾讯感觉还有hc,最近捞了我好几次,因为目前有offer,所以不准备面了,可以再找找,不行的话就找找中小厂试试,因为我之前也找了好久,准备放弃了,结果有个岗位流程特别顺利,然后就oc,只能说坚持下试试,万一呢💪
点赞 评论 收藏
分享
05-24 14:12
门头沟学院 Java
点赞 评论 收藏
分享
frutiger:逆天,我家就安阳的,这hr咋能说3k的,你送外卖不比这工资高得多?还说大厂来的6k,打发叫花子的呢?这hr是怎么做到说昧良心的话的
点赞 评论 收藏
分享
评论
5
收藏
分享

创作者周榜

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