首页 > 网易笔试7.21ME
头像
joshua0509
编辑于 2020-07-22 10:35
+ 关注

网易笔试7.21ME

网易笔试7.21ME,做的不好,估计挂了 ,说下我具体的思路,
第一题:直接翻转遍历,AC!
第二题:图的简历,求最小祖先即可,但是这里需要遍历m - > n中的每一个节点。没时间写了!
第三题:把数据处理好了后,直接翻转下,归并排序即可,但是我写的归并排序,最后只通过60%左右,不知道问题在哪里!
第四题:并查集,一道简单的并查集,但是我写出来后,答案总是错误,只通过10%,用的map写的,不知道问题出在哪里!我太菜了!

总之:都是简单题,但是我基本功不扎实,估计没戏了。
希望大佬们可以贴下你们的代码,讨论下。

如果解题思路有错误,请指正!

第一题的AC代码:一遍通过,写的不好,大佬们不要喷啊!
vector<vector<int> > invert_tree(int** node_data_list, int node_data_listRowLen, int* node_data_listColLen) {
    int n = node_data_listRowLen;
    int root = 0;

    vector<vector<int> > tree(n+1, vector<int>());
    vector<vector<int> > ans;

    for(int i = 0; i < n; i++) {
        int id = node_data_list[i][0];
        int p = node_data_list[i][1];
        if(p == 0) root = id;
        else tree[p].push_back(id);
    }

    for(int i = 1; i <= n; i++) {
        reverse(tree[i].begin(), tree[i].end());
    }

    ans.push_back({root,0});
    dfs(root, 0, tree, ans);

    return ans;
}
void dfs(int root, int parent, vector<vector<int> >& tree, vector<vector<int> >& ans) {
    for(int i = 0; i < tree[root].size(); i++) {
        ans.push_back({tree[root][i], root});
        dfs(tree[root][i], root, tree, ans);
    }
}


全部评论

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

推荐话题

相关热帖

近期热帖

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

近期精华帖

热门推荐