回复: 31
跳转到指定楼层
上一主题 下一主题
收起左侧

狗家实习电面面经,感觉差不多跪了,来攒人品……

全局:

2018(7-9月) 码农类General 硕士 实习@google - 网上海投 - 技术电面  | | Other | 应届毕业生

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

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
下午面了两轮,来地里赞个人品
之前也各种看今年实习的电面面经,但是都没有考到,不过有类似题目的变形,我看到的电面面经也基本人人都不一样,感觉还是要靠平时基础,而且我leetcode就刷了300左右感觉还是不
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
>



补充内容 (2017-11-22 11:57):
第一题说错了,是最小的那个长方形面积,不过都差不多啦……

评分

参与人数 4大米 +17 收起 理由
lalasparrow + 5 给你点个赞!
sunnybegoffers + 2 给你点个赞!
570468837 + 5 给你点个赞!
edyyy + 5 给你点个赞!

查看全部评分


上一篇:Yelp实习一轮电面跪经
下一篇:Google Onsite
全局:
个人感觉第一题3 for loops就可以做了吧
先把所有点都放进set里,然后根据三个点可以算出能组成长方形的第四个点,查找第四个点是不是在set里
是的话,求global min就行
回复

使用道具 举报

推荐
lf963 2018-4-7 07:54:31 | 只看该作者
全局:
给一串数组代表坐标,求问这些坐标中能连成的长方形中,面积最大的那个是多大

假設長方行的邊皆與X軸或Y軸垂直或平行,不會有斜的長方形
  1. import java.util.*;
  2. public class RectangleMaxArea {
  3.     public static void main(String[] args){
  4.         Coordinate[] coordinates= new Coordinate[10];
  5.         coordinates[0] = new Coordinate(-1,5);
  6.         coordinates[1] = new Coordinate(-1,-3);
  7.         coordinates[2] = new Coordinate(2,7);
  8.         coordinates[3] = new Coordinate(2,3);
  9.         coordinates[4] = new Coordinate(4,-1);
  10.         coordinates[5] = new Coordinate(6,7);
  11.         coordinates[6] = new Coordinate(6,3);
  12.         coordinates[7] = new Coordinate(7,2);
  13.         coordinates[8] = new Coordinate(2,-4);
  14.         coordinates[9] = new Coordinate(6,-4);
  15.         System.out.println(new RectangleMaxArea().getMaxArea(coordinates));
  16.     }

  17.     int getMaxArea(Coordinate[] coordinates){
  18.         int maxArea = 0;
  19.         Set<Coordinate> mySet = new HashSet<>();
  20.         Collections.addAll(mySet,coordinates);
  21.         if(mySet.size() < 4)
  22.             return 0;
  23.         int pointNum = coordinates.length;

  24.         //we want to pick two diagonal points
  25.         for(int i=0; i<pointNum; i++){
  26.             for(int j=0; j<pointNum; j++){
  27.                 // if we pick two points with
  28.                 // 1. same coordinates or
  29.                 // 2. they are on the same vertical line or
  30.                 // 3. they are on the same horizontal line
  31.                 // we skip them because we want to pick diagonal point of the rectangle
  32.                 if(coordinates[i].equals(coordinates[j])
  33.                         || coordinates[i].x == coordinates[j].x
  34.                         || coordinates[i].y == coordinates[j].y)
  35.                     continue;
  36.                 int[] p1 = {coordinates[i].x, coordinates[i].y};
  37.                 int[] p2 = {coordinates[j].x, coordinates[j].y};
  38.                 int[] p3 = new int[2];
  39.                 int[] p4 = new int[2];

  40.                 if(mySet.contains(new Coordinate(p2[0],p1[1])) && mySet.contains(new Coordinate(p1[0],p2[1]))){
  41.                     p3[0] = p2[0];
  42.                     p3[1] = p1[1];
  43.                     p4[0] = p1[0];
  44.                     p4[1] = p2[1];
  45.                     maxArea = Math.max(maxArea,getArea(p1,p3,p4));
  46.                 }
  47.             }
  48.         }

  49.         return maxArea;
  50.     }

  51.     int getArea(int[] p1, int[] p2, int[] p3){
  52.         int edge1 = p1[0]-p2[0] + p1[1]-p2[1];
  53.         int edge2 = p1[0]-p3[0] + p1[1]-p3[1];
  54.         return edge1 * edge2;
  55.     }
  56. }

  57. class Coordinate{
  58.     int x;
  59.     int y;
  60.     Coordinate(int x, int y){
  61.         this.x = x;
  62.         this.y = y;
  63.     }

  64.     public boolean equals(Object p){
  65.         Coordinate c = (Coordinate)p;
  66.         return c.x == this.x && c.y == this.y;
  67.     }

  68.     public int hashCode(){
  69.         final int prime = 997;
  70.         return x + prime * y;
  71.     }
  72. }
复制代码
回复

使用道具 举报

推荐
amazinglu 2018-3-5 02:45:10 | 只看该作者
全局:
您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
回复

使用道具 举报

🔗
edyyy 2017-11-22 13:00:21 | 只看该作者
全局:
谢谢楼主分享。第一题能举个例子吗?
回复

使用道具 举报

🔗
570468837 2017-11-22 13:15:20 | 只看该作者
全局:
LZ能说下第二轮第二题不用extra space怎么做吗?
除了改变树的结构,其他方法想不到了。。。
给你加米啦~
回复

使用道具 举报

🔗
szb23 2017-11-22 13:44:24 | 只看该作者
全局:
570468837 发表于 2017-11-22 13:15
LZ能说下第二轮第二题不用extra space怎么做吗?
除了改变树的结构,其他方法想不到了。。。
给你加米啦~

感觉就是lc 160
回复

使用道具 举报

🔗
 楼主| shu16 2017-11-22 13:54:17 | 只看该作者
全局:

是的,基本就是这样
回复

使用道具 举报

🔗
 楼主| shu16 2017-11-22 13:55:13 | 只看该作者
全局:
570468837 发表于 2017-11-22 13:15
LZ能说下第二轮第二题不用extra space怎么做吗?
除了改变树的结构,其他方法想不到了。。。
给你加米啦~

把它当成linkedlist一样来做,类似slow fast指针的感觉,上面也有人说了lc160。
回复

使用道具 举报

🔗
 楼主| shu16 2017-11-22 14:52:58 | 只看该作者
全局:
edyyy 发表于 2017-11-22 13:00
谢谢楼主分享。第一题能举个例子吗?

比如给你点1点2点3点4点5点6的坐标,点1点2点3点4, 可以构成长方形,点3点4点5点6也可以构成长方形,选这两个里面最小的那个面积。
回复

使用道具 举报

🔗
zhujl161 2017-11-25 07:47:14 | 只看该作者
全局:
请问楼主第一问就是强算吗?楼主是怎么存储数据方便后面找长方形的呢?
回复

使用道具 举报

🔗
hongtunbaobao 2017-11-25 14:23:49 | 只看该作者
全局:
求问楼主第一题怎么做?
回复

使用道具 举报

🔗
charlie.wuhan 2017-11-26 03:20:34 | 只看该作者
全局:
同求问楼主第一题的思路/(ㄒoㄒ)/~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

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