题解 | 剩下的树

剩下的树

https://www.nowcoder.com/practice/f5787c69f5cf41499ba4706bc93700a2

//剩下的树
#include <iostream>
#include <vector>
#include <stdio.h>
using namespace std;
//思路:马路可以看成是一个动态数组,如果有树,在位置上如果有树,其值为0;无树->1;
//最后循环遍历整个动态数组,记录值为0的个数,即为剩下的数的个数
//循环遍历整个动态数组最好用迭代器(获取元素的位置,相当于高级指针)
int main() {
    int L, M;
    scanf("%d%d", &L, &M);
    int i, j, left, right;
    vector<int> tree(L + 1);//0~L,一共L+1棵树,初始值为0
    int num = 0; //剩下的树的数量
    for (i = 0; i < M; ++i) {
        scanf("%d%d", &left, &right);
        for (j = left; j <= right; ++j) {
            tree[j] = 1;
        }
    }
    vector<int>::iterator tree1;//迭代器
    for (tree1 = tree.begin(); tree1 != tree.end(); ++tree1) {
        if (*tree1 == 0) {
            num++;
        }

    }
    printf("%d\n", num);
}

王道机试指南 文章被收录于专栏

这个专栏是参考王道机试指南中相关的练习题哦

全部评论

相关推荐

02-16 13:52
门头沟学院 Java
给🐭🐭个面试机会吧:嘿,mvbatis
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务