首页 > 美团到店事业群上海广告平台部二面20210819
头像
peonyX
编辑于 2021-08-20 15:52
+ 关注

美团到店事业群上海广告平台部二面20210819 内部员工回复

美团到店事业群上海广告平台部二面20210819

双非本科艰难求职。全程聊实习。跟我说就两轮技术面,现在在等通知。

  1. 自我介绍
  2. 两段实习做的东西介绍一下
  3. 拓扑排序,没有原题吧,自己想的。我下面回忆一下题
    最开始输入两个数,n,m。n表示n个节点,m表示,m个判断。下面输入m个判断。
    如果第一行输入4 4,那么下面输入
    1 2
    1 3
    2 4
    2 3
    表示1>2,1>3,2>4,2>3
    问最后可不可以输出一个排序。
    给出我的代码
public void solve(int[][] arr, int n, int m) {
        //int n = arr.lengt;
        int[] cnt = new int[n + 1];
        Map<Integer, List<Integer>> map = new HashMap();
        for (int i = 0; i < arr.length; i++) {
            List<Integer> list = map.getOrDefault(arr[i][0], new ArrayList());
            list.add(arr[i][1]);
            cnt[arr[i][1]]++;
            map.put(arr[i][0], list);
        }
        //System.out.println(map);
        Queue<Integer> queue = new LinkedList();
        for (int i = 1; i <= n; i++) {
            if (cnt[i] == 0) {
                queue.add(i);
                cnt[i]--;
            }
        }
        List<Integer> list = new ArrayList();
        while (!queue.isEmpty()) {
            int size = queue.size();
            for (int i = 0; i < size; i++) {
                int v = queue.poll();
                list.add(v);
                List<Integer> l = map.getOrDefault(v, new ArrayList());
                for (int j = 0; j < l.size(); j++) {
                    cnt[l.get(j)]--;
                }
            }

            for (int i = 1; i <= n; i++) {
                if (cnt[i] == 0) {
                    queue.add(i);
                    cnt[i]--;
                }
            }

        }
        //System.out.println(list);
        if (list.size() < n) {
            System.out.println("no");
        } else {
            System.out.println(list);
        }
    }

更新0820

收到感谢信了,说实话,我不理解。算法题做出来了,二面只聊了项目,还发感谢信吗。

更多模拟面试

全部评论

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

相关热帖

近期热帖

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

近期精华帖

热门推荐