【通知】7月22,工业界资深数据科学家教你破解各大公司面试!


一亩三分地论坛

 找回密码
 获取更多干活,快来注册

一亩三分地官方iOS手机应用下载
查看: 173|回复: 0
收起左侧

2s OA 老两题

[复制链接] |试试Instant~ |关注本帖

2017(7-9月) 码农类 硕士 全职@TwoSigma - 网上海投 - 在线笔试 |Other在职跳槽

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干活,快来注册

x
刚面完2s OA,还是老两题。。
class UF {
    int n;
    int[] arr;
    int count;
    public UF(int n) {
        this.n = n;
        arr = new int[n];
        for (int i = 0; i < n; i++) {
            arr = i;
        }. visit 1point3acres.com for more.
        count = n;
    }

    public int find(int i) {
        if (arr == i) {
            return i;
        }
        arr = find(arr);
        return arr;
    }

    public void union(int i, int j) {.1point3acres缃
        int r1 = find(i);.1point3acres缃
        int r2 = find(j);
        if (r1 == r2) return;
        arr[r1] = r2;
        count--;
    }

    public boolean isConnected(int i, int j) {
        return find(i) == find(j);
    }

    public int getCount() {
        return count;
    }
}. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷

public class FriendCircle {

    public static int friendCircle(String[] friends) {
        if (friends == null || friends.length == 0) return 0;
. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
        int n = friends.length;
        UF uf = new UF(n);
        for (int i = 0; i < n; i++) {
            String s = friends;
            for (int j = 0; j < n; j++) {
                char c = s.charAt(j);
                if (i != j && c == 'Y') {
                    uf.union(i, j);
                }
            }. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
        }
        return uf.getCount();
    }

    public static void main(String[] args) {
        String[] test = {
                "YYNN",
                "YYYN",
                "NYYN",
                "NNNY"
            };
        System.out.println(friendCircle(test));
    }. from: 1point3acres.com/bbs
} 鏉ユ簮涓浜.涓夊垎鍦拌鍧.

public class LongestChain {
. visit 1point3acres.com for more.
    public static int longestChain(String[] words) {. visit 1point3acres.com for more.
        Map<String, Integer> mem = new HashMap<>();
        Set<String> set = new HashSet<>();
        for (String s : words) set.add(s);. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
        int max = 0;
        for (String s : words) {. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
            int ret = dfs(s, set, mem);
            max = Math.max(max, ret);
        }
        return max;
    }

    private static int dfs(String s, Set<String> set, Map<String, Integer> mem) {
        if (mem.containsKey(s)) {
            return mem.get(s);
        }. 鍥磋鎴戜滑@1point 3 acres
        StringBuilder sb = new StringBuilder(s);
        int res = 1;
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            sb.deleteCharAt(i);
            String tmp = sb.toString();
            if (set.contains(tmp)) {
. Waral 鍗氬鏈夋洿澶氭枃绔,                int ret = dfs(tmp, set, mem);
                res = Math.max(res, ret + 1); 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
            }
            sb.insert(i, c);
        }
        mem.put(s, res);
        return res;
    }

    public static void main(String[] args) {
        String[] test = new String[]{"","a", "b", "b","bca","bda","bdca","abdca"};
        System.out.println(longestChain(test));. 鍥磋鎴戜滑@1point 3 acres
    }
}. visit 1point3acres.com for more.
. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷

评分

1

查看全部评分

本版积分规则

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2017-7-21 19:10

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表