一亩三分地论坛

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

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

亚马逊 OA2 长方形 overlap

[复制链接] |试试Instant~ |关注本帖
keyzkd 发表于 2016-11-19 14:01:24 | 显示全部楼层 |阅读模式

2016(10-12月) 码农类 硕士 全职@Amazon - 内推 - 技术电面 |Otherfresh grad应届毕业生

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

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

x
之前听说rectangle overlap就有testcase 不好过
我这回果断碰上了,第一次提交的时候没过给出testcase ,一看发现Point2 居然是这样的-google 1point3acres
[(0 5)(50), (1 1) (22)]
题目中明明说的是 topleft 和bottom right 啊,结果对角线旋转了90度变成了 topright bottomleft 啊,-google 1point3acres
死命改最终还有两个test 没过

求安慰,求讲解...

评分

1

查看全部评分

本帖被以下淘专辑推荐:

新宿车站 发表于 2016-11-20 04:13:03 | 显示全部楼层
(5,50),(11,22)不就是左上右下么?LZ你在说什么……
回复 支持 1 反对 0

使用道具 举报

路未翎 发表于 2016-11-19 14:18:29 | 显示全部楼层
请问给的点到底是左下右上还是左上右下啊😂 topleft不是左上的意思吗
回复 支持 反对

使用道具 举报

 楼主| keyzkd 发表于 2016-11-19 14:20:21 | 显示全部楼层
我印象中是一个正对角线一个反对角线...
回复 支持 反对

使用道具 举报

 楼主| keyzkd 发表于 2016-11-19 14:27:52 | 显示全部楼层
路未翎 发表于 2016-11-19 14:18
请问给的点到底是左下右上还是左上右下啊😂 topleft不是左上的意思吗

所以是左上左下右上右下都有。。。
回复 支持 反对

使用道具 举报

这只兔子很rock 发表于 2016-11-19 14:32:05 | 显示全部楼层
请问边重合和点重合是算重合呢还是不重合呢
回复 支持 反对

使用道具 举报

xhlzyllx 发表于 2016-11-19 14:34:27 | 显示全部楼层
应该判断xy最大最小值就好了把,然后重新赋值给新的tl br
回复 支持 反对

使用道具 举报

 楼主| keyzkd 发表于 2016-11-19 14:42:52 | 显示全部楼层
我就是这么做的,不知为什么还有case 不对,况且这题目告诉你top left bottom right,哪有这样出题的。。。
回复 支持 反对

使用道具 举报

xhlzyllx 发表于 2016-11-19 15:24:00 | 显示全部楼层
keyzkd 发表于 2016-11-19 14:42. Waral 鍗氬鏈夋洿澶氭枃绔,
我就是这么做的,不知为什么还有case 不对,况且这题目告诉你top left bottom right,哪有这样出题的。。。

之前面经有提到给错误点的情况,但讲道理处理了应该就没问题了
回复 支持 反对

使用道具 举报

 楼主| keyzkd 发表于 2016-11-19 15:30:33 | 显示全部楼层
xhlzyllx 发表于 2016-11-19 15:24.鐣欏璁哄潧-涓浜-涓夊垎鍦
之前面经有提到给错误点的情况,但讲道理处理了应该就没问题了

多谢信息~ 我试着找找. visit 1point3acres.com for more.
解法应该就是先求出两个个矩形的四个轮廓然后再min max合并吧,最后怎么改也改不出来了。。。
move on了。。。
回复 支持 反对

使用道具 举报

 楼主| keyzkd 发表于 2016-11-19 15:30:40 | 显示全部楼层
xhlzyllx 发表于 2016-11-19 15:24
之前面经有提到给错误点的情况,但讲道理处理了应该就没问题了

多谢信息~ 我试着找找. 1point 3acres 璁哄潧
解法应该就是先求出两个个矩形的四个轮廓然后再min max合并吧,最后怎么改也改不出来了。。。
move on了。。。
回复 支持 反对

使用道具 举报

 楼主| keyzkd 发表于 2016-11-19 15:30:47 | 显示全部楼层
xhlzyllx 发表于 2016-11-19 15:24
之前面经有提到给错误点的情况,但讲道理处理了应该就没问题了

多谢信息~ 我试着找找
解法应该就是先求出两个个矩形的四个轮廓然后再min max合并吧,最后怎么改也改不出来了。。。
move on了。。。
回复 支持 反对

使用道具 举报

huanghuan9210 发表于 2016-11-20 02:40:00 | 显示全部楼层
keyzkd 发表于 2016-11-19 15:30.鐣欏璁哄潧-涓浜-涓夊垎鍦
多谢信息~ 我试着找找
解法应该就是先求出两个个矩形的四个轮廓然后再min max合并吧,最后怎么改也改不 ...

所以应该先用min和max把两个长方形的 x和y坐标分别提出来,再用一个长方形大的坐标和另一个长方形小的坐标比,如果大坐标比小坐标小,就不重合?明天OA2, 求解答
回复 支持 反对

使用道具 举报

bzplbn 发表于 2016-11-20 04:26:19 | 显示全部楼层
楼主我昨天也做这题了 我想找你确认一下 题目里给的两个点是int还是double。。我好像昨天做的时候没有注意这个。。
回复 支持 反对

使用道具 举报

huanghuan9210 发表于 2016-11-20 04:27:53 | 显示全部楼层
新宿车站 发表于 2016-11-20 04:13. more info on 1point3acres.com
(5,50),(11,22)不就是左上右下么?LZ你在说什么……

(0, 5) (5,0), (1,1) (2,2)
回复 支持 反对

使用道具 举报

 楼主| keyzkd 发表于 2016-11-20 04:30:39 | 显示全部楼层
bzplbn 发表于 2016-11-20 04:26
楼主我昨天也做这题了 我想找你确认一下 题目里给的两个点是int还是double。。我好像昨天做的时候 ...

你是怎么做的? int double 都不影响啦,印象中int不是double
回复 支持 反对

使用道具 举报

huanghuan9210 发表于 2016-11-20 04:31:37 | 显示全部楼层
针对楼主说的,左上左下右上右下都有的情况,写了点代码:
public static boolean check(Node topLeftA, Node topLeftB, Node bottomRightA, Node bottomRightB) {
        double minXA=Math.min(topLeftA.x, bottomRightA.x);
        double maxXA=Math.max(topLeftA.x, bottomRightA.x);
        double minYA=Math.min(topLeftA.y, bottomRightA.y);
        double maxYA=Math.max(topLeftA.y, bottomRightA.y);
       
        double minXB=Math.min(topLeftB.x, bottomRightB.x);
        double maxXB=Math.max(topLeftB.x, bottomRightB.x);
        double minYB=Math.min(topLeftB.y, bottomRightB.y);
        double maxYB=Math.max(topLeftB.y, bottomRightB.y);
        if(minXA>maxXB||minXB>maxXA)
          return false;
        if(minYA>maxYB||minYB>maxYA)
          return false;
          . 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
    return true;
}
.鏈枃鍘熷垱鑷1point3acres璁哄潧
不知道对不对,欢迎批评指正
回复 支持 反对

使用道具 举报

bzplbn 发表于 2016-11-20 04:33:45 | 显示全部楼层
keyzkd 发表于 2016-11-20 04:30
你是怎么做的? int double 都不影响啦,印象中int不是double

我还是处理了一下坐标给反的情况==好像不处理case也能过 因为处理的时候用了个temporary的变量 用的int 回头想想发现好像没注意是给的int还是double 突然有点方!
回复 支持 反对

使用道具 举报

 楼主| keyzkd 发表于 2016-11-20 04:34:06 | 显示全部楼层
在这里给一下自己当时的解法 . 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
求left1 right1 top1 bottom1, left2 right2 top2 bottom2
left = max 1 2
right = min 1 2
top = max 1 2
bottom = min 1 2
return (left < max) && (top < bottom);
回复 支持 反对

使用道具 举报

 楼主| keyzkd 发表于 2016-11-20 04:44:19 | 显示全部楼层
huanghuan9210 发表于 2016-11-20 04:31
针对楼主说的,左上左下右上右下都有的情况,写了点代码:
public static boolean check(Node topLeftA, N ...

题目中说了边重合不算重合,不知道 minXA == maxXB && minYA == minYB 点重合怎么办
回复 支持 反对

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2016-12-10 01:08

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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