亚麻OA求砸,面经神衣护体!


一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
天天打游戏、照样领工资、还办H1B
这份工作你要不要?
把贵司招聘信息放这里
查看: 409|回复: 0
收起左侧

2s OA 老两题

[复制链接] |试试Instant~ |关注本帖
Michael2013 发表于 2017-7-16 02:36:21 | 显示全部楼层 |阅读模式

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

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

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

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; 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
        }
        count = n;
    }

    public int find(int i) {
        if (arr == i) {
            return i;. 鍥磋鎴戜滑@1point 3 acres
        }-google 1point3acres
        arr = find(arr);
        return arr;
    }
. 1point3acres.com/bbs
    public void union(int i, int j) {
        int r1 = find(i);. 1point3acres.com/bbs
        int r2 = find(j);. Waral 鍗氬鏈夋洿澶氭枃绔,
        if (r1 == r2) return;
        arr[r1] = r2;
        count--;.1point3acres缃
    }. Waral 鍗氬鏈夋洿澶氭枃绔,

    public boolean isConnected(int i, int j) {. visit 1point3acres.com for more.
        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();
    }
. 1point3acres.com/bbs
    public static void main(String[] args) {
        String[] test = {. visit 1point3acres.com for more.
                "YYNN",
                "YYYN",
                "NYYN",
                "NNNY". more info on 1point3acres.com
            };
        System.out.println(friendCircle(test));
    }
}

public class LongestChain {

    public static int longestChain(String[] words) {
        Map<String, Integer> mem = new HashMap<>();
        Set<String> set = new HashSet<>();.鏈枃鍘熷垱鑷1point3acres璁哄潧
        for (String s : words) set.add(s);
        int max = 0;.鏈枃鍘熷垱鑷1point3acres璁哄潧
        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);
        }
        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)) {
                int ret = dfs(tmp, set, mem);
                res = Math.max(res, ret + 1);
            }
            sb.insert(i, c);
        }. 鍥磋鎴戜滑@1point 3 acres
        mem.put(s, res);
        return res;
    }. 1point 3acres 璁哄潧

    public static void main(String[] args) {
        String[] test = new String[]{"","a", "b", "b","bca","bda","bdca","abdca"};
        System.out.println(longestChain(test));. visit 1point3acres.com for more.
    }
}


评分

1

查看全部评分

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-10-19 13:44

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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