May 2009 - May 2017 论坛八周年-你的足迹,我的骄傲


一亩三分地论坛

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

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

Square onsite面经

[复制链接] |试试Instant~ |关注本帖
zhubobo 发表于 2016-7-26 05:20:49 | 显示全部楼层 |阅读模式

2016(4-6月) 码农类 硕士 全职@Square - 网上海投 - Onsite |Fail在职跳槽

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

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

x
地里Square的面经不多,来发一个1. Coding:他家高频的掉方块问题
2. Coding:实现Guava Fluentiterable class, lz跪在这轮了
3. Coding:设计一个credit card class, 实现一些功能,从简单到复杂,具体内容lz记不清了,但是不难,面试官会一步步引导. 1point3acres.com/bbs
4. Design a flight booking website-google 1point3acres
5. Project

评分

1

查看全部评分

sisolcode 发表于 2016-7-26 11:26:24 | 显示全部楼层
关注一亩三分地公众号:
Warald_一亩三分地
請問第一題你能說說大致的思路嗎? 最近要電面,看到滿多人電話也接到這題
回复 支持 反对

使用道具 举报

 楼主| zhubobo 发表于 2016-7-27 12:30:10 | 显示全部楼层
关注一亩三分地微博:
Warald
sisolcode 发表于 2016-7-26 11:26
請問第一題你能說說大致的思路嗎? 最近要電面,看到滿多人電話也接到這題

贴一下我的代码
public class AddSquare {
        private static class Node {
                private float a;
                private float b;
                private float h;
                public Node(float a, float b, float h) {
                        this.a = a;. From 1point 3acres bbs
                        this.b = b;. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
                        this.h = h;
                }
        }
        private TreeSet<Node> treeset;.1point3acres缃
        private float maxHeight;
       
        public AddSquare() {
                treeset = new TreeSet<Node>(new Comparator<Node>() {
                        public int compare(Node x, Node y) {
                                float diff = x.a - y.a;
                                if (Math.abs(diff) < 1e-10) {
                                        return 0;
                                }
                                return x.a < y.a ? -1 : 1;
                        }
                });
                maxHeight = 0;
        }
       
        public void drop(float position, float size) {.鐣欏璁哄潧-涓浜-涓夊垎鍦
                Node newnode = new Node(position, position + size, size);
                Node left = getLeftBound(newnode);
                Node right = getRightBound(newnode);
                if (left == null && right == null) {
                        treeset.add(newnode);
                        maxHeight = Math.max(maxHeight, size);
                        return;
                }
                float curMaxHeight = left.h;
                Node cur = left;
                while (cur != right) {
                        Node tmp = treeset.higher(cur);
                        curMaxHeight = Math.max(curMaxHeight, cur.h);
                        treeset.remove(cur);
                        cur = tmp;
                }
                curMaxHeight = Math.max(curMaxHeight, right.h);
                treeset.remove(right);
                if (left.a < newnode.a) {
                        treeset.add(new Node(left.a, newnode.a, left.h));
                }. 1point3acres.com/bbs
                if (newnode.b < right.b) {
                        treeset.add(new Node(newnode.b, right.b, right.h));
                }. 1point3acres.com/bbs
                treeset.add(new Node(newnode.a, newnode.b, size + curMaxHeight));
                maxHeight = Math.max(maxHeight, size + curMaxHeight);
        }
       
        public float getHeight() {. visit 1point3acres.com for more.
                return maxHeight;
        }. from: 1point3acres.com/bbs
        private Node getLeftBound(Node n) {
                Node smaller = treeset.lower(n);
                if (smaller != null && overlap(smaller, n)) {
                        return smaller;
                }
                Node larger = treeset.ceiling(n);
                if (larger != null && overlap(larger, n)) {
                        return larger;. From 1point 3acres bbs
                }
                return null;
        }
       
        private Node getRightBound(Node n) {
                Node dummy = new Node(n.b, n.b, n.h);. more info on 1point3acres.com
                Node smaller = treeset.floor(dummy);
                if (smaller != null && overlap(smaller, n)) {
                        return smaller;
                }
                return null;
        }
       
        private boolean overlap(Node x, Node y) {
                return !greater(x.a, y.b) && !less(x.b, y.a);
        }
       
        private boolean greater(float x, float y) {
                return x - y > 1e-10;
        }
       
        private boolean less(float x, float y) {
                return x - y < -1e-10;
        }.鐣欏璁哄潧-涓浜-涓夊垎鍦
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                AddSquare test = new AddSquare();
                test.drop(1,4);
                System.out.println(test.getHeight());. visit 1point3acres.com for more.
                test.drop(3,3);
                System.out.println(test.getHeight());
                test.drop(-1,3);. from: 1point3acres.com/bbs
                System.out.println(test.getHeight());
                test.drop(5.5f, 3);
                System.out.println(test.getHeight());.鐣欏璁哄潧-涓浜-涓夊垎鍦
                test.drop(10, 5);
                System.out.println(test.getHeight());
                test.drop(-1, 6.5f);
                System.out.println(test.getHeight());. Waral 鍗氬鏈夋洿澶氭枃绔,
        }

}

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

mdzzxswl 发表于 2016-8-3 11:42:27 | 显示全部楼层
是最近网投的吗~我上周网申了intern然后今天邮件说拒了面试都没给。。。是他们家bar不低还是自己太弱 泪目
回复 支持 反对

使用道具 举报

 楼主| zhubobo 发表于 2016-8-4 13:05:27 | 显示全部楼层
mdzzxswl 发表于 2016-8-3 11:42
是最近网投的吗~我上周网申了intern然后今天邮件说拒了面试都没给。。。是他们家bar不低还是自己太弱 泪目

不是网投的,是recruiter直接联系我的
回复 支持 反对

使用道具 举报

han4011 发表于 2017-3-3 14:47:42 | 显示全部楼层
Guava Fluentiterable class 是啥意思?
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2017-5-24 21:51

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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