360笔试第二题AC代码

攒人品啊,攒人品

看到好多dfs的解法,其实用两层DP解就可以了,代码中的unordered_set不喜欢用,用个N大小的bool数组也是可以的

顺便发一下,上次顺丰最后一道学术交流所使用的并查集的总结博客,只有总结没有代码。地址是并查集.

#include <iostream>
#include <unordered_set>
#include <vector>
using namespace std;

int main(){
    int N, M; cin >> N >> M;
    vector<int> nums(M);
    for(int i = 0; i < M; ++i) cin >> nums[i];
    unordered_set<int> last;
    for(int i = 1; i <= N; ++i){
        last.insert(i);
    }
    for(int i = 0; i < M; ++i){
        unordered_set<int> cur;
        for(int x : last){
            if(x + nums[i] <= N) cur.insert(x + nums[i]);
            if(x - nums[i] >= 1) cur.insert(x - nums[i]);
        }
        last = cur;
    }
    cout << last.size() << endl;
    return 0;
}

最后,求个offer啊,生活太艰难了

#360公司##笔试题目##题解#
全部评论

相关推荐

伟大的烤冷面被普调:暨大✌🏻就是强
点赞 评论 收藏
分享
10-15 03:05
门头沟学院 Java
CADILLAC_:凯文:我的邮箱是死了吗?
点赞 评论 收藏
分享
3 5 评论
分享
牛客网
牛客企业服务