首页 > 小鹏算法 一面凉经
头像
牛客最菜应届生
发布于 2021-11-02 21:39
+ 关注

小鹏算法 一面凉经

2021-11-2

介绍

项目,细节

代码

约瑟夫环
https://leetcode-cn.com/problems/yuan-quan-zhong-zui-hou-sheng-xia-de-shu-zi-lcof/

/*
*   m个人坐成一个圈,从0开始数,数到n,把这个人踢掉,然后继续从0开始,直到最后剩下n-1个人,输出这n-1个人
*
*/
#include "../common.h"

void test(vector<pair<int, bool>>& vec, int n){
    int len = vec.size();
    int len1 = vec.size();
    int count = 0;
    int p = 0;
    while(len>=n){
        while(count<n){
            if(p==len1){
                p = 0;
                continue;
            }
            if(vec[p].second){
                p++;
            }
            else{
                p++;
                count++;
            }
        }

        if(p==len1){
            p=0;
        }
        while(vec[p].second){
            p++;
            if(p==len1){
                p=0;
            }
        }
        vec[p].second = true;
        // cout << "p: " << vec[p].first << endl;
        len--;
        // cout << "len: "  << len << endl;
        count = 0;
        p++;
    }

    for(auto& ele:vec){
        if(!ele.second){
            cout << ele.first << ", ";
        }
        else{
            ;
        }
    }
    cout << endl;
}

int main(){

    vector<pair<int, bool>> nums = {{1, false},{2, false}, {3, false}, {4, false}, {5, false}, {6, false}};
    test(nums, 3);
    return 0;
}

更多模拟面试

全部评论

(1) 回帖
加载中...
话题 回帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐