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公司##笔试题目##题解#
全部评论

相关推荐

服从性笔试吗,发这么多笔,现在还在发。
蟑螂恶霸zZ:傻 x 公司,发两次笔试,两次部门匹配挂,
投递金山WPS等公司10个岗位 >
点赞 评论 收藏
分享
jack_miller:杜:你不用我那你就用我的美赞臣
点赞 评论 收藏
分享
offer多多的六边形战士很无语:看了你的博客,感觉挺不错的,可以把你的访问量和粉丝数在简历里提一下,闪光点(仅个人意见)
点赞 评论 收藏
分享
3 5 评论
分享
牛客网
牛客企业服务