陌陌笔试-Java研发工程师(商业化)

1.构建图使用递归和回溯实现最长路径
通过100%
public class Solution {
    public String LongestBehaviorPath (String[] paths) {
    
        Map> graph = new HashMap<>();
        Map indegree = new HashMap<>();
        for(String path : paths){
String []steps = path.split("->");
            for(int i = 0;i                graph.putIfAbsent(steps[i],new ArrayList<>());
                graph.get(steps[i]).add(steps[i+1]);
                indegree.put(steps[i+1],indegree.getOrDefault(steps[i+1],0)+1);
                indegree.putIfAbsent(steps[i],0);
            }
        }

        List startNodes = new ArrayList<>();
        for(String node:indegree.keySet()){
            if(indegree.get(node) == 0){
                startNodes.add(node);
            }
        }

        List longestPath = new ArrayList<>();

        for(String start : startNodes){
            dfs(start,new ArrayList<>(),graph,longestPath);
        }

return String.join("->",longestPath);
    }

    private static void dfs(String node,List path,Map> graph,List longestPath){
        path.add(node);
if(path.size()> longestPath.size()){
            longestPath.clear();
            longestPath.addAll(new ArrayList<>(path));
        }

        if(graph.containsKey(node)){
            for(String neighbor: graph.get(node)){
                dfs(neighbor,path,graph,longestPath);
            }
        }

        path.remove(path.size() - 1);

    }
}

2.求逆值对
双重for循环遍历比较
通过100%
全部评论
我也这题,感觉好简单😅
点赞 回复 分享
发布于 09-06 20:18 安徽
双重for都能解决吗
点赞 回复 分享
发布于 09-06 20:43 山东

相关推荐

11-29 10:23
门头沟学院 Java
秋招终于要收官了,搞到了阿里云、字节、美团、B站、百度的offer,阿里云是管培生,其他都是后端,所以我没有纠结公司,主要是在管培和后端之间综合考量了很久,做了非常多的功课,最终决定选阿里云管培生了,总结一下我的秋招全流程,分享给大家!简历投递:我一共投了10多家大厂,都是后端,一次机缘巧合下看到了阿里云管培生,说是技术类复合型人才,当时也没多想,看到阿里云的招牌就投了,想着说试试也行,但是命运的齿轮就这样转动了。。笔试:笔试环节,后端岗现在基本都要考编程题,阿里云管培生主要是考察计算机基础知识,题型主要是选择和填空,考试时间一小时,另外还有认知和心理测试。面试:其他家就是正常的八股、挖项目,阿里云管培生这个就有意思了,来了个群面,当时两眼一抹黑,不过想想都到这了,得努力搞完,就看了很多群面攻略,也了解到了阿里云管培生群面关注的方向主要是你做事的底层逻辑、表达能力、过往活动的组织能力、对一件事的深度思考和解决思路等等。没想到我在群面中意外发挥的很好,不仅成为了leader,还带领团队一起完成了方案制定和汇报,并且得到了面试官的认可!!!最后顺利进入了后面的单独面试,面试官和HR都超nice,流程高效,最终顺利通过!当天出结果太刺激了!也是阿里云管培生的面试让我意外发现了我貌似很适合管培生,而且也对管培生未来要做的事情很感兴趣。offer选择:这一步是我最纠结的,毕竟后端和管培生是两个完全不同的方向。我觉得还是仔细了解一下情况,一方面我看了市场情况,阿里云作为行业头部大厂,从21年就启动管培生招聘了,一直到现在,还在作为重磅项目单独在招聘官网展示;另一方面也跟学长打听了一下,他说随着科技发展,很多项目未来都是业务导向的,项目中往往需要各个专业领域人才协同解决问题,就需要懂技术、懂沟通、懂产品、懂业务的复合人才来推动技术的应用落地与商业化,而这样的人才也更有竞争力,也更容易推动技术和产品的不断创新,所以发展一定是更好的,我信了不过纯技术背景出身的我还是没有太多胜任岗位的信心,所以又去了解了一下阿里云管培生的培养体系,一整个震惊住了!就没听过这么全面的培养体系,他们是有为期1年的带薪培训,大乌鱼啊!这期间就跟上大学一样,从课程到实践到考试,甚至每个班级会有班主任,都是飞天学堂专业培训团队的班主任,工作和生活都会照顾到,可以从学生丝滑过渡到职场打工人,有任何问题还可以找往届师兄师姐请教,太全面了!说不心动是假的,最终考虑到我的个人发展,我觉得还是阿里云管培生更适合我,既可以继续钻研技术,又可以让技术方案在各行各业实现落地与深入应用!最终决定,就以阿里云管培生这个offer完美收官我的秋招!#阿里云管培生offer#
在查重的劳伦斯:
点赞 评论 收藏
分享
评论
3
3
分享
牛客网
牛客企业服务