【生活质量系列】评测几款用过的咖啡机

一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货

最近看过此主题的会员

坐标湾区
DreamCraft创始团队
招聘游戏开发工程师
游戏初创公司招聘工程师、UIUX Designer和游戏策划
码农求职神器Triplebyte:
不用海投
内推多家公司面试
前Google华人高管创立
面试offer一键直通
Leap.ai助你进入热门独角兽
硅谷知名AI创业公司
图灵视频
招聘多个工程师职位
E轮2.5亿美元融资
K12教育独角兽一起作业
北京-诚聘人工智能/教育/大数据岗
查看: 1999|回复: 9
收起左侧

POCKET GEMS Challenge OA4 经验

[复制链接] |试试Instant~
我的人缘0
630904334 发表于 2017-10-29 09:37:43 | 显示全部楼层 |阅读模式
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (11)
 
 
0% (0)  踩

2018(7-9月) 码农类General 本科 全职@PoketGem - 校园招聘会 - 校园招聘会 在线笔试  | Other | fresh grad应届毕业生

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

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

x
拖了一个星期才做完的OA,看了不少地里的OA经验,我也在这里写一下吧。
题目是这两个题目,https://instant.1point3acres.com/thread/285075,感谢greenmania。第一题很简单,地里有答案可能?我贴出来我看到的吧,希望原作者看到后告诉我,我会修改的。
  1. static String canReach(int x1, int y1, int x2, int y2) {
  2.         return helper(x1, y1, x2, y2) ? "Yes" : "No"; .留学论坛-一亩-三分地
  3.     }
  4.     private static boolean helper(int x1, int y1, int x2, int y2) {
  5.         if (x1 > x2 || y1 > y2) { return false; }
  6.         if (x1 == x2 && y1 == y2) { return true; }
  7.         return helper(x1 + y1, y1, x2, y2) || helper(x1, x1 + y1, x2, y2);
  8.     }
复制代码
我重点描述一下第二题吧(有点可惜,最终由两个case超时了,用weighted union find可能会好一些)
hackerrank中给的输入是,(int n, String[] queryType, int[] students1, int[]students2),n是指总共有n个学生,queryType中要么是"Friend"要么是“Total”,“Friend"操作内容是把学生 i 和学生 j 连接起来,对应union find里的union操作,"Total"是内容计算出学生 i 和学生 j 总共的朋友圈个数, students1里是q个学生(可以理解为操作中的 i 学生)students2里是q个学生(可以理解为操作中的 j 学生)。要求的返回值居然是个int[],这个数组里存着每一次"Total"操作的结果。
我按照印象把代码贴出来吧,写的有些地方不严谨,还望指正。
  1. static int[] friendcircle(int n, String[] queryType, int[] students1, int[] students2) {
  2.                 List<Integer> res = new ArrayList<Integer>();
  3.                 int length = queryType.length;. 1point3acres
  4.                 int[] students = new int[n+1];
  5.                 for(int i = 0; i<n; i++){
  6.                         students[i] = i+1;
  7.                 }

  8.                 for(int i = 0; i<length; i++){. 一亩-三分-地,独家发布
  9.                         if(queryType[i].equals("Friend")){
  10.                                 union(students, students1[i], students2[i]);.1point3acres网
  11.                         }
  12.                         if(queryType[i].equals("Total")){
  13.                                 res.add(getSize(students, students1[i], students2[i]));
  14.                         }
  15.                 }

  16.                 int k = res.size();. Waral 博客有更多文章,
  17.                 int[] realres = new int[k];
  18.                 for(int i = 0; i<k; i++){
  19.                         realres[i] = res.get(i);
  20.                 }
  21.                 return realres;
  22.         }
  23.        
  24.         public static int getSize(int[] students, int i, int j) {
  25.                 int root_i = findRoot(students, i);
  26.                 int root_j = findRoot(students, j);
  27.                 int size = 0;
  28.                 for (int k = 1; k < students.length; k++) {. visit 1point3acres for more.
  29.                         if (findRoot(students, k) == root_i || findRoot(students, k) == root_j) { size++; }
  30.                 }
  31.                 return size;
  32.         }
  33.        
  34.         public static void union(int[] students, int i, int j) {. from: 1point3acres
  35.                 int i_root = findRoot(students, i);
  36.                 int j_root = findRoot(students, j);
  37.                 if (i_root != j_root) {
  38.                         students[i_root-1] = j_root;.留学论坛-一亩-三分地
  39.                 }
  40.         }


  41.         private static int findRoot(int[] students, int x) {
  42.                 int root = x, cur = x, temp = -1;
  43.                 while (students[root-1] != root) { root = students[root-1]; }
  44.                 while (students[cur-1] != cur) {
  45.                         temp = students[cur-1];
  46.                         students[cur] = root;
  47.                         cur = temp;.1point3acres网
  48.                 }
  49.                 return root;       
  50.         }
复制代码
祝大家offer满满。
别像我一样做个拖拉机....
求点赞TAT,求各种,好多帖子都看不了,心好痛TAT....


. 1point 3acres 论坛

补充内容 (2017-11-22 02:29):
.1point3acres网昨天突然收到这家约电话面试,都过去一个月了,我以为OA没做好然后直接默拒了...可能只是电面着玩玩?

评分

参与人数 9大米 +30 收起 理由
破烂CC + 2 给你点个赞!
shpvictor + 1 给你点个赞!
chasedream1 + 5 给你点个赞!
ganqianjun + 3 很有用的信息!
willzhang007 + 5 给你点个赞!
mking + 3 给你点个赞!
astro813 + 3 很有用的信息!
snakech + 5 楼主实在人,谢谢分享
singer82 + 3 给你点个赞!

查看全部评分


上一篇:Bloomberg intern电面面经
下一篇:PayPay迷之跪晶
我的人缘0
asd101200 发表于 2017-11-1 05:41:12 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  89% (131)
 
 
10% (15)  踩
我感觉第一题的代码有问题,if (x1 > x2 || y1 > y2) { return false; } 这里不对吧,因为即使x1 > x2, 但还有可能x1 + y1 == x2, 因为y1可正可负,同理y1,y2. 除非题里明确说x1,y1,x2,y2,都大于0. (-1,-1,-1,-2)这个test case你的代码过不了。
回复

使用道具 举报

我的人缘0
 楼主| 630904334 发表于 2017-11-1 07:24:01 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (11)
 
 
0% (0)  踩
asd101200 发表于 2017-11-1 05:41. more info on 1point3acres
我感觉第一题的代码有问题,if (x1 > x2 || y1 > y2) { return false; } 这里不对吧,因为即使x1 > x2, 但 ...
.留学论坛-一亩-三分地
不好意思,我贴的是我参考的代代码,现在是我自己写在OA里的代码
回复

使用道具 举报

我的人缘0
 楼主| 630904334 发表于 2017-11-1 07:24:24 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (11)
 
 
0% (0)  踩
  1. public class canReach {
  2.     public static void main(String[] args) {
  3.         int x1 = 1;
  4.         int y1 = 4;
  5.         int x2 = 5;. 一亩-三分-地,独家发布
  6.         int y2 = 9;

  7.         String res = canarrive(x1,y1,x2,y2);

  8.         System.out.println(res);
  9.     }

  10.     public static String canarrive(int x1, int y1, int x2, int y2){
  11.         if(x1 == x2 && y1 == y2){
  12.             return "Yes";. 一亩-三分-地,独家发布
  13.         }
  14.         if(x1 > x2 || y1 > y2){
  15.             return "No";
  16.         }
  17.         return (canarrive(x1 + y1, y1,x2,y2).equals("Yes") || canarrive(x1, y1 + x1, x2,y2).equals("Yes")) ? "Yes":"No";. 1point 3acres 论坛
  18.     }
  19. }
复制代码

补充内容 (2017-11-1 08:37):
额,这是我测试的时候用的,OA里只需要"canarrive"那个function就可以了
回复

使用道具 举报

我的人缘0
shanL 发表于 2017-11-1 08:27:15 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (3)
 
 
0% (0)  踩
感谢楼主分享!

21.000+ students read the Road to learn React. The course weaves all the opinionated roadmaps into one roadmap to master React. It gives you all the fundamentals in React. You will build a Hacker News App along the way.

回复

使用道具 举报

我的人缘0
小师妹 发表于 2017-11-4 12:24:47 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (13)
 
 
0% (0)  踩
用了weighted union find还是两个test case超时,不懂
回复

使用道具 举报

我的人缘0
 楼主| 630904334 发表于 2017-11-4 13:31:33 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (11)
 
 
0% (0)  踩
小师妹 发表于 2017-11-4 12:24
用了weighted union find还是两个test case超时,不懂

patpat把重心放在其他公司吧
回复

使用道具 举报

我的人缘0
SXY123 发表于 2017-11-5 12:38:43 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  91% (171)
 
 
8% (16)  踩
630904334 发表于 2017-11-1 07:24
补充内容 (2017-11-1 08:37):
额,这是我测试的时候用的,OA里只需要"canarrive"那个function就可以了

为什么我觉得第二个if语句应该是大于等于,x, y都是正数,应该不存在0的情况
回复

使用道具 举报

我的人缘0
AryaStark 发表于 2017-11-20 12:53:36 | 显示全部楼层
第二个问题,我第五个第九个和最后三个test都是wrong answer。。。请问楼主遇到什么一开始没过的地方后来调过了吗。。醉了,提前15分钟写完死活找不错误来。。
回复

使用道具 举报

我的人缘0
rickliang 发表于 2017-12-4 04:00:41 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (5)
 
 
0% (0)  踩
请问楼主 角标 root - 1 是什么意思啊?
回复

使用道具 举报

游客
请先登录

本版积分规则

提醒:发帖可以选择内容隐藏,部分板块支持匿名发帖。请认真读完以下全部说明:

■隐藏内容方法: [hide=200]你想要隐藏的内容比如面经[/hide]
■意思是:用户积分低于200则看不到被隐藏的内容
■可以自行设置积分值,不建议太高(200以上太多人看不到),也不建议太低(那就没必要隐藏了)
■建议只隐藏关键内容,比如具体的面试题目、涉及隐私的信息,大部分内容没必要隐藏。
■微信/QQ/电子邮件等,为防止将来被骚扰甚至人肉,以论坛私信方式发给对方最安全。
■匿名发帖的板块和方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

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

GMT+8, 2018-9-20 21:28

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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