查看: 1692| 回复: 4
跳转到指定楼层
上一主题 下一主题
收起左侧

[Leetcode] 593 Valid Square

全局:

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

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

x
这个题目有个解法是把六条边都存到一个set里,然后判断只有两个长度,且不为0.

现在有个情况好像不能cover: 即由两个等边三角形对称构成到平行四边形(120度加60度)

      A           D  
      
B           C

这种情况5条线段(4条边和一个对角线)等于三角形长度,另一个长度(BD)120等腰三角形对应度斜边。。这种情况算法会返回true,但实际显然不是。

想了好久没想明白。。。求讨论赐教。怎么回事呢?


上一篇:据说"刷400道题就够了", 指的是哪400道题
下一篇:算法课程对转行的小白的效益大吗?
🔗
mylarryshell 2020-6-6 05:19:07 | 只看该作者
全局:
加个判断就行了:较长的是2条对角线,剩下的较短的4条边是边长。
你举出来的例子5条边相同,所以不符合正方形条件。
回复

使用道具 举报

🔗
 楼主| huststorager 2020-6-6 08:49:16 | 只看该作者
全局:
mylarryshell 发表于 2020-6-6 05:19
加个判断就行了:较长的是2条对角线,剩下的较短的4条边是边长。
你举出来的例子5条边相同,所以不符合正 ...

我的意思是用那个算法(即判断6条边只有个两个不同长度,且都不为0)会返回正确。但显示不是正方形。
奇怪都是这个算法好像在leetcode上能通过。换言之,leetcode上test case 没有考虑这种情况?

如果要加个条件,也可以一个是直角。
回复

使用道具 举报

🔗
xueyi2017 2020-6-6 14:05:46 | 只看该作者
全局:
huststorager 发表于 2020-6-6 08:49
我的意思是用那个算法(即判断6条边只有个两个不同长度,且都不为0)会返回正确。但显示不是正方形。
奇 ...

leetcode没有cover这个case的原因是,input是int array,但是仅用整数格点是无法构建这样的四边形的。

所以leetcode根本没法创建这样的test case,如果改成double array的话,也许有可能构建接近这样的四边形。
回复

使用道具 举报

🔗
 楼主| huststorager 2020-6-6 14:14:28 | 只看该作者
全局:
xueyi2017 发表于 2020-6-6 14:05
leetcode没有cover这个case的原因是,input是int array,但是仅用整数格点是无法构建这样的四边形的。

...

有道理。。但最好leetcode加点注释说明一下这种情况就好。。。。
回复

使用道具 举报

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

本版积分规则

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