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


一亩三分地论坛

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

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

DropBox OA

[复制链接] |试试Instant~ |关注本帖
theanois 发表于 2016-10-26 04:13:39 | 显示全部楼层 |阅读模式

2017(10-12月) 码农类 博士 实习@Dropbox - 内推 - 其他 |Pass其他

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

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

x
马上要Dropbox的一面了,发个GridIllumination  OA的code攒攒人品。缩进都乱套了,不过好在是java,大家自己动下手吧。写完代码太着急了,也没看过了多少test case。不过因为拿到面试了,估计还行吧。求各位给点大米
  1. import java.util.ArrayList;
  2. import java.util.HashMap;. 鍥磋鎴戜滑@1point 3 acres
  3. import java.util.HashSet;-google 1point3acres

  4. public class GridIllumination {
  5. . 1point3acres.com/bbs
  6.         public GridIllumination().鏈枃鍘熷垱鑷1point3acres璁哄潧
  7.         {
  8.                
  9.         }-google 1point3acres
  10.         . From 1point 3acres bbs
  11.         static class Point {
  12.         public int x;
  13.         public int y;
  14.         
    . 1point3acres.com/bbs
  15.         public Point(int x, int y)
  16.         {
  17.             this.x = x;
  18.             this.y = y;
  19.         }. from: 1point3acres.com/bbs
  20.         . 1point 3acres 璁哄潧
  21.         public boolean equals(Object o)
  22.         {
  23.                 Point point = (Point)o;. 鍥磋鎴戜滑@1point 3 acres
  24.                 . more info on 1point3acres.com
  25.                 if(this.x==point.x&&this.y==point.y)
  26.                         return true;
  27.                
  28.                 return false;
  29.         }
  30.         
  31.         public int hashCode()
  32.         {
  33.                 return this.x+this.y;
  34.         }
  35.         }
  36.        

  37.         public ArrayList<String> checkIllumination(int N, ArrayList<Integer[]>lamps, ArrayList<Integer[]> queries). 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  38.         {
  39.                 HashMap<Long, Integer> rows = new HashMap<Long, Integer>();
  40.                 HashMap<Long, Integer> cols = new HashMap<Long, Integer>();
  41.                 HashMap<Long, Integer> diags = new HashMap<Long, Integer>();.鐣欏璁哄潧-涓浜-涓夊垎鍦
  42.                 HashMap<Long, Integer> otherDiags = new HashMap<Long, Integer>();
  43.                 HashSet<Point> lampSet = new HashSet<Point>();
  44.                
  45.                 ArrayList<String> ans = new ArrayList<String>();
  46.                
  47.                 for(int i = 0;i<lamps.size();++i) 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  48.                 {
  49.                         Integer[] lamp = lamps.get(i);. Waral 鍗氬鏈夋洿澶氭枃绔,
  50.                         long row = lamp[0];. From 1point 3acres bbs
  51.                         long column = lamp[1];
  52.                        
  53.                         Point point = new Point(lamp[0], lamp[1]);
  54.                         lampSet.add(point);. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  55.                        
  56.                         if(!rows.containsKey(row))
  57.                         {
  58.                                 rows.put(row, 1);
  59.                         }
    . Waral 鍗氬鏈夋洿澶氭枃绔,
  60.                         else {
  61.                                 rows.put(row, rows.get(row)+1);
  62.                         }. more info on 1point3acres.com
  63.                        
  64.                         if(!cols.containsKey(column))
  65.                         {
  66.                                 cols.put(column, 1);
  67.                         }
  68.                         else {.鐣欏璁哄潧-涓浜-涓夊垎鍦
  69.                                 cols.put(column, cols.get(column)+1);
  70.                         }
  71.                        
  72.                         if(!diags.containsKey(row+column))
  73.                         {. Waral 鍗氬鏈夋洿澶氭枃绔,
  74.                                 diags.put(row+column, 1);
  75.                         }. 1point3acres.com/bbs
  76.                         else {
  77.                                 diags.put(row+column, diags.get(row+column)+1);. visit 1point3acres.com for more.
  78.                         }
  79.                        
  80.                         if(!otherDiags.containsKey(row-column))
  81.                         {
  82.                                 otherDiags.put(row-column, 1);
  83.                         }
  84.                         else {
  85.                                 otherDiags.put(row-column, otherDiags.get(row-column)+1);-google 1point3acres
  86.                         }
  87.                 }
  88.                 . 鍥磋鎴戜滑@1point 3 acres
  89.                
  90.                 for(int i = 0;i<queries.size();++i)
  91.                 {
  92.                         Integer[] query = queries.get(i);
  93.                         int x = query[0];
  94.                         int y = query[1];
  95.                         // turn light off
  96.                         for(long j = x-1;j<=x+1;++j)
  97.                         {.鐣欏璁哄潧-涓浜-涓夊垎鍦
  98.                                 for(long k = y-1;k<=y+1;++k)
  99.                                 {
  100.                                         if(j>0&&j<=N&&k>0&&k<=N) // valid position
  101.                                         {
  102.                                                 if(lampSet.contains(new Point((int)j,(int)k)))
  103.                                                 {
  104.                                                         rows.put(j, rows.get(j)-1);
  105.                                                         cols.put(k, cols.get(k)-1);
  106.                                                         diags.put(j+k, diags.get(j+k)-1);
  107.                                                         otherDiags.put(j-k, otherDiags.get(j-k)-1);. from: 1point3acres.com/bbs
  108.                                                 }
  109.                                         }
  110.                                 }
  111.                         }
  112.                        
  113.                         boolean dark= this.isDark(x, rows)&&this.isDark(y, cols)&&this.isDark(x+y, diags)&&this.isDark(x-y, otherDiags);
  114.                        
  115.                         if(dark)
  116.                                 ans.add("DARK");
  117.                         else
  118.                                 ans.add("LIGHT");
  119.                         . visit 1point3acres.com for more.
  120.                        
  121.                         // turn light on
  122.                         for(long j = x-1;j<=x+1;++j)
  123.                         {-google 1point3acres
  124.                                 for(long k = y-1;k<=y+1;++k)
  125.                                 {
  126.                                         if(j>0&&j<=N&&k>0&&k<=N) // valid position. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  127.                                         {
  128.                                                 if(lampSet.contains(new Point((int)j,(int)k)))
  129.                                                 {
  130.                                                         rows.put(j, rows.get(j)+1);-google 1point3acres
  131.                                                         cols.put(k, cols.get(k)+1);
  132.                                                         diags.put(j+k, diags.get(j+k)+1);
  133.                                                         otherDiags.put(j-k, otherDiags.get(j-k)+1);
  134.                                                 }
  135.                                         }
  136.                                 }
  137.                         }
  138.                 }. visit 1point3acres.com for more.
  139.                 . Waral 鍗氬鏈夋洿澶氭枃绔,
  140.                 return ans;
  141.         }
  142.         . from: 1point3acres.com/bbs
  143.        
  144.         public boolean isDark(long key, HashMap<Long, Integer> map). 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  145.         {
  146.                 // test if there is light on this row, column, diagnals
  147.                 if(map.containsKey(key))
  148.                 {
  149.                         int value = map.get(key);
  150.                         // test if the there is still some light on.鐣欏璁哄潧-涓浜-涓夊垎鍦
  151.                         if(value>0). 1point3acres.com/bbs
  152.                                 return false;
  153.                 }
  154.                
  155.                 return true;.鏈枃鍘熷垱鑷1point3acres璁哄潧
  156.         }. 1point 3acres 璁哄潧
  157.        
  158.        
  159.         public static void main(String[] args) {
    . 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  160.                 GridIllumination illumination = new GridIllumination();
  161.                 . from: 1point3acres.com/bbs

  162.                 // test case 1
  163.                 int N = 8;-google 1point3acres
  164.                 ArrayList<Integer[]> lamps = new ArrayList<Integer[]>();
  165.                 lamps.add(new Integer[]{1,6});
  166.                 lamps.add(new Integer[]{5,6});
  167.                 lamps.add(new Integer[]{7,3});. visit 1point3acres.com for more.
  168.                 lamps.add(new Integer[]{3,2});
    . from: 1point3acres.com/bbs
  169.        
  170.                 ArrayList<Integer[]> queries = new ArrayList<Integer[]>();
  171.                 queries.add(new Integer[]{4,4});
  172.                 queries.add(new Integer[]{6,6});
  173.                 queries.add(new Integer[]{8,1});
  174.                 queries.add(new Integer[]{3,2});
  175.                 queries.add(new Integer[]{2,3});
  176.                
  177.                
  178.                 ArrayList<String> answer = illumination.checkIllumination(N, lamps, queries);
  179.                 . from: 1point3acres.com/bbs
  180.                 for(int i = 0;i<answer.size();++i)
  181.                         System.out.println(answer.get(i));.鏈枃鍘熷垱鑷1point3acres璁哄潧
  182.         }

  183. }
复制代码

评分

3

查看全部评分

gavin5566 发表于 2016-10-26 04:19:01 | 显示全部楼层
lz 內推 還 網申? 謝謝
回复 支持 反对

使用道具 举报

 楼主| theanois 发表于 2016-10-26 04:21:02 | 显示全部楼层
gavin5566 发表于 2016-10-26 04:19
lz 內推 還 網申? 謝謝

是找的同学帮忙内推的
回复 支持 反对

使用道具 举报

gavin5566 发表于 2016-10-26 05:33:22 | 显示全部楼层
theanois 发表于 2016-10-26 04:21
是找的同学帮忙内推的

能幫忙內推嗎 感謝!
回复 支持 反对

使用道具 举报

 楼主| theanois 发表于 2016-10-26 05:37:13 | 显示全部楼层
gavin5566 发表于 2016-10-26 05:33
能幫忙內推嗎 感謝!

同学也是找的他的认识的人,关系有点远,不好意思。
回复 支持 反对

使用道具 举报

gavin5566 发表于 2016-10-26 09:42:23 | 显示全部楼层
theanois 发表于 2016-10-26 05:37
同学也是找的他的认识的人,关系有点远,不好意思。

沒事的 謝謝lz
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-8-20 08:31

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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