一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 1623|回复: 44
收起左侧

亚麻OA2 11/30/2016 全方面谈谈我感受

[复制链接] |试试Instant~ |关注本帖
xuanyuanyi12 发表于 2016-12-1 08:31:51 | 显示全部楼层 |阅读模式

2016(10-12月) 码农类 硕士 全职@Amazon - 内推 - 在线笔试 |Otherfresh grad应届毕业生

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

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

x
历经两周的复习,我终于在今天完成了亚麻所有的OA,这里谈谈我个人对OA2的感受希望对大家有用,也算回馈大家了,毕竟我真的得到了很多人的帮助。不管结果如何,我也算尽力了,就算被拒,也没有什么遗憾。。。。。。. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
WS部分
其实WS部分的面经已经比较全了,我也得益于这两位作者,在此表示感激!. more info on 1point3acres.com
https://segmentfault.com/a/1190000007519772
http://www.1point3acres.com/bbs/thread-212944-1-1.html
但是,每个人和每个人真的很不同,怎么选还是得看自己,我在这里讲一讲我的解题方法。当然也许我是错的,我只是发表看法。. From 1point 3acres bbs
3个大前提
1. Communication
遇见需要了解情况才能做出判断的题一定要了解清楚情况再给出自己的建议。比如API那个题,不要武断做出决定。
2. Ownership
找上门的事情一定要管,遇到问题一定要承担,再不济号召大家一起解决问题。
3. 看清那5个级别到底代表什么,instruction里都有说明,我看了后没觉得一味打极端好。人家明明告诉你啥是啥了,不要自己乱带入。
requirement > deadline > more features 这个我就不多说了
具体解题的时候,我都会自动把选项group成几堆,给个好坏再细分。
其实我也做的蛮尴尬的,那3个service的题并不是出现在那个视频题里的。
Code部分
我抽到的是k closest points (9 cases), window sum (5 cases) 和 order dependency (4 cases). test全过,不过我看好多过的人也挂了。看天吧,看老天让不让我和我家大德牧一起上班了ToT.
这里我讲下我准备中感想,马拉车,想写就写,只要能通过lc,亚麻那个没问题应该。还有全局变量,讲真从我开始学java, 课上的project从来不提倡乱用全局变量,这样写可能会产生问题,而且也很不好看,所以我一直坚持professor教我的,没必要就不要用。Company tree 那道题可以用非递归来写,当然递归用数组带进去也可以但是input的意思就不明显了,写类有点为了解决问题而写,所以我一直准备的是非递归写法,只是没用上。其他题注意corner case吧。对于马拉车和非递归如果同学有兴趣我可以分享自己的代码。
. visit 1point3acres.com for more.
暂时讲到这里吧。。。。。。后面有时间把每道题的注意点补上。。。。。。
希望能带我的大德牧北上工作呀!
bless!





-google 1point3acres补充内容 (2016-12-1 08:34):
我指的全局变量不是成员变量哈,就是不是成员变量也不是常数的其他为了方便的。。。你们懂的。。。
-google 1point3acres
补充内容 (2016-12-1 11:01):
. 鍥磋鎴戜滑@1point 3 acres大家有啥要问的在这里问哈~我没私信权限~. more info on 1point3acres.com
. 1point 3acres 璁哄潧
补充内容 (2016-12-1 11:06):
马拉车和非递归贴下面了哈~~~其他的我觉得网上都很全~~~大家要用的话还是要改成自己的风格哈~~~. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
鏉ユ簮涓浜.涓夊垎鍦拌鍧.
补充内容 (2016-12-1 13:57):
我补充下corner case哈~rectangle那个,你就是把矩形4条边的坐标找出来就是预处理了,边点重合不算重合。
k closest那个list为null或空我返回list,k<=0返回空list,k > list.size就输出sort过后的list

补充内容 (2016-12-1 14:01):. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
其他的我都是如果输入是list,如果是空或null返回输入list. 如果无解返回空list。Company tree看输入是null或者他的children是不是空,空即是无解返回null. 其他真没啥了,除了po那两道题,其他和网上差不多. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷

补充内容 (2016-12-1 14:01):
其他的我都是如果输入是list,如果是空或null返回输入list. 如果无解返回空list。Company tree看输入是null或者他的children是不是空,空即是无解返回null. 其他真没啥了,除了po那两道题,其他和网上差不多

评分

5

查看全部评分

本帖被以下淘专辑推荐:

 楼主| xuanyuanyi12 发表于 2016-12-1 09:32:28 | 显示全部楼层
hurricane_e 发表于 2016-12-1 09:29
求问lz马拉车是虾米题?

longest palindrome那道题~~~~
回复 支持 1 反对 0

使用道具 举报

coldrainy 发表于 2016-12-1 09:13:34 | 显示全部楼层
大哥,我也刚做,但是我的k closest point 是6 个case,而且 Comparator不能用,double array 得写成 Double[] 而不是 double[] 才可以,不然报错。。。。有点坑啊
回复 支持 反对

使用道具 举报

 楼主| xuanyuanyi12 发表于 2016-12-1 09:17:23 | 显示全部楼层
coldrainy 发表于 2016-12-1 09:13.鏈枃鍘熷垱鑷1point3acres璁哄潧
大哥,我也刚做,但是我的k closest point 是6 个case,而且 Comparator不能用,double array 得写成 Doubl ...

我的真的是9个~~~而且不用double[]呀,他那个是CPoint的类呀~~~~看来亚麻真是有一个pool, 从里面随机取case, 看来code并不是不重要的
.鐣欏璁哄潧-涓浜-涓夊垎鍦
补充内容 (2016-12-1 09:19):.1point3acres缃
而且真的可以用Comparator,你记得import
回复 支持 反对

使用道具 举报

hurricane_e 发表于 2016-12-1 09:29:12 | 显示全部楼层
求问lz马拉车是虾米题?
回复 支持 反对

使用道具 举报

qiweiren 发表于 2016-12-1 10:57:54 | 显示全部楼层
楼主,可以把你的code分享一下吗?xiaotang.hello@gmail.com
多谢!
祝早日拿到offer!
回复 支持 反对

使用道具 举报

 楼主| xuanyuanyi12 发表于 2016-12-1 11:03:49 | 显示全部楼层
import java.util.Stack;
import java.util.ArrayList;
.1point3acres缃
/*
* Solution implements getHighAve which return the node with highest average.
*/
public class Solution {
        /*
         * Finds the node with highest average.
         * @param root The root of the company tree
         * @return The node with highest average
         */
           public static Node getHighAve(Node root) {
                // Checks the validity of the input.
                if (root == null || root.children.size() == 0) {.鐣欏璁哄潧-涓浜-涓夊垎鍦
                    return null;
                }
                
                // Finds the node with highest average..鐣欏璁哄潧-涓浜-涓夊垎鍦
                double maxAverage = Double.MIN_VALUE;
                Node maxNode = null;
                Node head = root;. visit 1point3acres.com for more.
                int sum = 0;
                int count = 0;. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
                Stack<Node> stack = new Stack<Node>();
                stack.push(root);
                while(!stack.isEmpty()) {
                    Node top = stack.peek();
                    ArrayList<Node> children = top.children;
                    int size = children.size();. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
                    if(size == 0 || children.get(0) == head) {.鐣欏璁哄潧-涓浜-涓夊垎鍦
                        count++;
                        head = stack.pop();. from: 1point3acres.com/bbs
                        sum += head.val;
                        if(size != 0 && sum /count > maxAverage) {
                            maxAverage = sum / count;
                            maxNode = head;
                        }
                    }
                    else {
                        for(Node child : children) {
                            if(child != null) {
. From 1point 3acres bbs                                stack.push(child);. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
                            }. 1point 3acres 璁哄潧
                        }
                    }
                }
                
                return maxNode;
            }
}
回复 支持 反对

使用道具 举报

 楼主| xuanyuanyi12 发表于 2016-12-1 11:04:41 | 显示全部楼层
import java.lang.StringBuilder;
import java.lang.Math;

/*
* Implements longestPalindromicSubstring method which returns longest panlindromic substring of the input. 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
*/
public class Solution {. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
        /*
         * Finds longest panlindromic substring of the input.
         * @param s The input string.
         * @return longest panlindromic substring of the input
         */
        public static String longestPalindromicSubstring(String s) {
            // Checks the validity of the input.
                if (s == null || s.length() == 0) {. 鍥磋鎴戜滑@1point 3 acres
                        return s;
                }
                       
                // Processes the input string. After processing, aba would be #a#b#a#.-google 1point3acres
                StringBuilder t = new StringBuilder("#");
                for (int i = 0; i < s.length(); i++) {
                        t.append(s.charAt(i));
                        t.append("#");
                }
                       
.鐣欏璁哄潧-涓浜-涓夊垎鍦                // Finds center and radius of the longest panlindromic substring of t.
                int middle = 0;
                int right = 0;
                int center = 0;
                int radius = 0;
                int[] half = new int[t.length()]; // The half-length of the longest palindrome centered with jth character.
                for (int j = 0; j < t.length(); j++) {
                        if(right > j) {
                                half[j] = Math.min(right - j, half[2 * middle - j]);
                        }
                        else {
                                half[j] = 1;
                        }
                        while (j - half[j] >= 0 && half[j] + j < t.length() && t.charAt(j - half[j]) == t.charAt(half[j] + j)) {
                                half[j]++;
                        }
                        if (half[j] + j > right) {
                                middle = j;. visit 1point3acres.com for more.
                                right = half[j] + j;
                        }
                        if (half[j] > radius) {
                                radius = half[j];
                                center = j;
                        }
                }.1point3acres缃
                       
                return s.substring((center - radius + 1) / 2, (center + radius) / 2);
        }
}
回复 支持 反对

使用道具 举报

faster5354 发表于 2016-12-1 11:08:08 | 显示全部楼层
楼主能分享下你k closest points的Comparator怎么写的吗? 谢谢!
  1.        final Point start = origin;
  2.                 PriorityQueue<Point> pq = new PriorityQueue<Point>(new Comparator<Point>() {
  3.                         public int compare(Point p1, Point p2) {
  4.                                 double d1 = Math.hypot(start.x - p1.x, start.y - p1.y);. 鍥磋鎴戜滑@1point 3 acres
  5.                                 double d2 = Math.hypot(start.x - p2.x, start.y - p2.y);
  6.                                 if(d2 > d1)
  7.                                         return 1;
  8.                                 else if(d2 == d1)
  9.                                         return 0;
  10.                                 else.鐣欏璁哄潧-涓浜-涓夊垎鍦
  11.                                         return -1;
  12.                         }
  13.                 });
复制代码

不知道我这样写行不行?
回复 支持 反对

使用道具 举报

 楼主| xuanyuanyi12 发表于 2016-12-1 11:09:22 | 显示全部楼层
faster5354 发表于 2016-12-1 11:08. Waral 鍗氬鏈夋洿澶氭枃绔,
楼主能分享下你k closest points的Comparator怎么写的吗? 谢谢!

不知道我这样写行不行?
.鏈枃鍘熷垱鑷1point3acres璁哄潧
pq里面记得加size
回复 支持 反对

使用道具 举报

在浙里 发表于 2016-12-1 11:13:36 | 显示全部楼层
感觉楼主是拿offer的节奏,求加米。
回复 支持 反对

使用道具 举报

oliverhao 发表于 2016-12-1 11:26:27 | 显示全部楼层
xuanyuanyi12 发表于 2016-12-1 11:04
import java.lang.StringBuilder;
import java.lang.Math;

为什么要Processes the input string?
(After processing, aba would be #a#b#a#.)
回复 支持 反对

使用道具 举报

 楼主| xuanyuanyi12 发表于 2016-12-1 11:31:09 | 显示全部楼层
oliverhao 发表于 2016-12-1 11:26
为什么要Processes the input string?
(After processing, aba would be #a#b#a#.)

这样就不用分奇偶了都是奇数长度的~~~
回复 支持 反对

使用道具 举报

 楼主| xuanyuanyi12 发表于 2016-12-1 11:31:46 | 显示全部楼层
在浙里 发表于 2016-12-1 11:13
感觉楼主是拿offer的节奏,求加米。

谢谢~~~
bless~~~
回复 支持 反对

使用道具 举报

Kevinbtc 发表于 2016-12-1 11:41:38 | 显示全部楼层
faster5354 发表于 2016-12-1 11:08. from: 1point3acres.com/bbs
楼主能分享下你k closest points的Comparator怎么写的吗? 谢谢!
. from: 1point3acres.com/bbs
不知道我这样写行不行?

看到有同学return的时候直接写 return Double.compare(d2, d1); 感觉更简洁一点
回复 支持 反对

使用道具 举报

 楼主| xuanyuanyi12 发表于 2016-12-1 11:45:30 | 显示全部楼层
Kevinbtc 发表于 2016-12-1 11:41
看到有同学return的时候直接写 return Double.compare(d2, d1); 感觉更简洁一点

Override的compare函数return的是int~

补充内容 (2016-12-1 11:48):
这样是比较简洁~
回复 支持 反对

使用道具 举报

沐阳Amigo 发表于 2016-12-1 11:46:30 | 显示全部楼层
我也是今天做的oa2 第三题是DeepCopy, 超坑的是居然给定class类里的变量名错了?!死活compile不过最后看test case才发现两边打的变量名不一样...不知道有没有人遇到
回复 支持 反对

使用道具 举报

 楼主| xuanyuanyi12 发表于 2016-12-1 11:49:40 | 显示全部楼层
沐阳Amigo 发表于 2016-12-1 11:46
我也是今天做的oa2 第三题是DeepCopy, 超坑的是居然给定class类里的变量名错了?!死活compile不过最后看t ...

那个arbitrary是吧~~~我以前看见有人提过~
回复 支持 反对

使用道具 举报

youknow 发表于 2016-12-1 12:14:27 | 显示全部楼层
恭喜楼主,抽到不错的题目,我也是今天oa2,结果三大水题,longest palindromic substring, overlap rectangle 和 high five scores。
回复 支持 反对

使用道具 举报

 楼主| xuanyuanyi12 发表于 2016-12-1 12:18:47 | 显示全部楼层
youknow 发表于 2016-12-1 12:14
恭喜楼主,抽到不错的题目,我也是今天oa2,结果三大水题,longest palindromic substring, overlap recta ...

我那个算不错的题目吗?我一直以为没区别哒~总之希望我们都有好消息~
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

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

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

custom counter

GMT+8, 2016-12-11 16:00

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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