一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
码农求职神器Triplebyte:
不用海投,内推你去多家公司面试
Airbnb 数据科学职位
in analytics and inference
天天打游戏、照样领工资,
你要不要来?
把贵司招聘信息放这里
查看: 506|回复: 0
收起左侧

2s OA 老两题

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

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

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

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

x
刚面完2s OA,还是老两题。。.1point3acres缃
class UF {
    int n;. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
    int[] arr;
    int count;
    public UF(int n) {
        this.n = n;
        arr = new int[n];. 鍥磋鎴戜滑@1point 3 acres
        for (int i = 0; i < n; i++) {
            arr = i; 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
        }.1point3acres缃
        count = n;
    }

    public int find(int i) {
        if (arr == i) {
            return i;
        }
        arr = find(arr);
        return arr;. 1point3acres.com/bbs
    }

    public void union(int i, int j) {
        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);
    }

    public int getCount() {
        return count;. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
    }
}

public class FriendCircle {
. From 1point 3acres bbs
    public static int friendCircle(String[] friends) {
        if (friends == null || friends.length == 0) return 0;. more info on 1point3acres.com
        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);. 1point 3acres 璁哄潧
                if (i != j && c == 'Y') {
                    uf.union(i, j);
                }
            }
        }
        return uf.getCount();
    }. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
. Waral 鍗氬鏈夋洿澶氭枃绔,
    public static void main(String[] args) {
        String[] test = {
                "YYNN",
                "YYYN",
                "NYYN",
                "NNNY"
            };
        System.out.println(friendCircle(test));. 鍥磋鎴戜滑@1point 3 acres
    }
}

public class LongestChain {

    public static int longestChain(String[] words) {
        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) {.1point3acres缃
            int ret = dfs(s, set, mem);
            max = Math.max(max, ret);
        }
        return max;
    }.1point3acres缃

    private static int dfs(String s, Set<String> set, Map<String, Integer> mem) {
        if (mem.containsKey(s)) {
            return mem.get(s);
        }. 1point3acres.com/bbs
        StringBuilder sb = new StringBuilder(s);
        int res = 1;
        for (int i = 0; i < s.length(); i++) {. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
            char c = s.charAt(i);
            sb.deleteCharAt(i);. visit 1point3acres.com for more.
            String tmp = sb.toString();
            if (set.contains(tmp)) {
                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));
    }
}


评分

1

查看全部评分

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-12-11 08:31

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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