推荐:数据科学课程和书籍清单以及培训讲座


一亩三分地论坛

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

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

2s OA 老两题

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

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

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

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

x
刚面完2s OA,还是老两题。。
class UF {
    int n;
    int[] arr;.鏈枃鍘熷垱鑷1point3acres璁哄潧
    int count;
    public UF(int n) {. 鍥磋鎴戜滑@1point 3 acres
        this.n = n;
        arr = new int[n];
        for (int i = 0; i < n; i++) {
            arr = i;
        }
        count = n;
    }

    public int find(int i) {. 1point 3acres 璁哄潧
        if (arr == i) {
            return i;
        }
        arr = find(arr);
        return arr;
    }
. Waral 鍗氬鏈夋洿澶氭枃绔,
    public void union(int i, int j) {. 1point 3acres 璁哄潧
        int r1 = find(i);
        int r2 = find(j);
        if (r1 == r2) return;
        arr[r1] = r2;
        count--;
    }

    public boolean isConnected(int i, int j) {
        return find(i) == find(j);
    }
.鏈枃鍘熷垱鑷1point3acres璁哄潧
    public int getCount() {
        return count;
    }
}. visit 1point3acres.com for more.

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);
                }
            }. Waral 鍗氬鏈夋洿澶氭枃绔,
        }
        return uf.getCount();
    }

    public static void main(String[] args) {
        String[] test = {
                "YYNN",
                "YYYN",
                "NYYN",
                "NNNY"
            };
        System.out.println(friendCircle(test));
. From 1point 3acres bbs
    }. Waral 鍗氬鏈夋洿澶氭枃绔,
}

public class LongestChain {
. Waral 鍗氬鏈夋洿澶氭枃绔,
    public static int longestChain(String[] words) {
        Map<String, Integer> mem = new HashMap<>();
        Set<String> set = new HashSet<>();. Waral 鍗氬鏈夋洿澶氭枃绔,
        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) {. 1point 3acres 璁哄潧
        if (mem.containsKey(s)) {
            return mem.get(s);
        }. Waral 鍗氬鏈夋洿澶氭枃绔,
        StringBuilder sb = new StringBuilder(s);
        int res = 1;
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);-google 1point3acres
            sb.deleteCharAt(i);. From 1point 3acres bbs
            String tmp = sb.toString();
            if (set.contains(tmp)) {
                int ret = dfs(tmp, set, mem);. Waral 鍗氬鏈夋洿澶氭枃绔,
                res = Math.max(res, ret + 1); 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
            }
            sb.insert(i, c);
        }-google 1point3acres
        mem.put(s, res);.鐣欏璁哄潧-涓浜-涓夊垎鍦
        return res;. 1point 3acres 璁哄潧
    }. 鍥磋鎴戜滑@1point 3 acres

    public static void main(String[] args) {. 鍥磋鎴戜滑@1point 3 acres
        String[] test = new String[]{"","a", "b", "b","bca","bda","bdca","abdca"};
        System.out.println(longestChain(test));
    }
}


评分

1

查看全部评分

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-8-24 03:53

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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