文章

3

粉丝

136

获赞

2

访问

2.2k

头像
击鼓传花 题解:使用动态数组vector,以及迭代器iterator
P1018 贵州大学机试题
发布于2024年3月3日 15:31
阅读数 591

使用动态数组vector,以及迭代器iterator,用arr.erase(it) 删除数组成员,简单高效快捷

#include<stdio.h>
#include<vector>
using namespace std;

int main() {
    int N;
    scanf("%d", &N);
    vector<int> arr;
    for(int i = 1;i <= N; i++){
        arr.push_back(i);
    }
    int pos = 0;//记录数组下标
    
    while (arr.size() != 1) {
        vector<int>::iterator it;
        it = arr.begin();
        pos = (pos + 2) % arr.size();
        it += pos;
        arr.erase(it);
    }
    printf("%d", arr[0]);
    return 0;
}

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发