挚文第一题开始一脸懵,等会了时间不够了,好气

public class Solution {

    public String maxPath(String[] paths){
        int n = paths.length;
        int[] nextString = new int[n];
        for (int i = 0; i < n; i++) {
            nextString[i] = -1;
            int a = paths[i].length();
            for (int j = 0; j < n; j++) {
                if (i == j) continue;
                if (paths[i].charAt(a - 1) == paths[j].charAt(0)) nextString[i] = j;
            }
        }

        int[] ll = new int[n];
        for (int i = 0; i < n; i++) {
            ll[i] = paths[i].length();
            int k = i;
            while (k < n) {
                if (nextString[k] == -1) break;
                ll[i] += paths[nextString[k]].length();
                k = nextString[k];
            }
        }

        int maxLen = -1;
        int pos = -1;
        for (int i = 0; i < n; i++) {
            if (ll[i] > maxLen) {
                maxLen = ll[i];
                pos = i;
            }
        }

        if (pos == -1 || maxLen == -1) return "";

        int k = pos;
        String s = paths[pos];
        while (k < n) {
            if (nextString[k] == -1) break;
            s += paths[nextString[k]].substring(1);
            k = nextString[k];
        }

        return s;
    }

    public static void main(String[] args) {
        String[] paths = {"B->C", "C->D->E", "L->M->N"};
        Solution solution = new Solution();
        String s = solution.maxPath(paths);
        System.out.println(s);
    }

}

#挚友集团#
全部评论

相关推荐

一面&nbsp;9.051.自我介绍2.实习中觉得最有难度的经历?(讲了一个使用了redis的功能)3.选用zset的底层原理?4.跳表了解多少?5.有用过lua吗?(没用过)6.redis如果有多个操作,属于同一个事务,如何保证它的原子性?(这个我不会,我说如果出现数据不一致的情况,我是用redisson去实现的,不了解redis事务)7.redisson的底层原理?(也答得不好,面试官说是lua,但我不了解)8.微服务的远程调用使用什么?(openfeign,答了调用的具体流程)9.feign底层使用的是http1.0还是http2.0?10.有没有了解过http1.和http2.0?11.gateway网关的理解?(路由转发和拦截请求)12.对线程池的理解?(线程复用)13.什么情况下会创建临时线程?14.对线程池的使用有什么自己的想法?(原问题忘了怎么问的,答了核心线程的选择以及阻塞队列的选择)15.线程创建有什么开销?(答了每一个线程对应一个虚拟机栈,占用内存,另外一个是线程切换也会有开销)16.对虚拟线程的理解?17.有没有了解乐观锁?18.乐观锁的如何实现?(版本号)19.使用过docker吗,谈一谈自己的理解?20.实习主要目的?(提升自己!)21.了解实习时间、到岗时间等-------------------------------------------------------总结:能答出来7成左右,有一些自己从没听过的概念,完全不会。面试官和善~二面&nbsp;9.06hr面,我以为是技术面跟hr小姐姐聊的挺好的,期望能过!9.09&nbsp;hr小姐姐打电话跟我说面试通过~
查看21道真题和解析
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务