题目描述
(通过次数17,277 | 提交次数27,277,通过率63.34%)
表:Triangle +-------------+------+ | Column Name | Type | +-------------+------+ | x | int | | y | int | | z | int | +-------------+------+ (x, y, z)是该表的主键列。 该表的每一行包含三个线段的长度。 写一个SQL查询,每三个线段报告它们是否可以形成一个三角形。 以任意顺序返回结果表。 查询结果格式如下所示。 示例 1: 输入: Triangle 表: +----+----+----+ | x | y | z | +----+----+----+ | 13 | 15 | 30 | | 10 | 20 | 15 | +----+----+----+ 输出: +----+----+----+----------+ | x | y | z | triangle | +----+----+----+----------+ | 13 | 15 | 30 | No | | 10 | 20 | 15 | Yes | +----+----+----+----------+ 来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/triangle-judgement
//测试数据 Create table If Not Exists Triangle (x int, y int, z int); insert into Triangle (x, y, z) values ('13', '15', '30'); insert into Triangle (x, y, z) values ('10', '20', '15');
解题思路
Triangle表保存了三个边长。
题目要求:根据三个边长,判断其是否能组成一个三角形。
在数学中,如果三个边长能够组成一个三角形,那么它们必定满足:任意两边之和大于第三边。
我们知道,对于三个边来说,任意两边的组合总共有3种。判断这3种组合是否都满足条件即可。
参考SQL
未特别说明的情况下,参考SQL为基于MySQL8.0实现。
select x, y, z, case when (x+y) > z and (x+z) > y and (y+z) > x then 'Yes' else 'No' end triangle from Triangle;
本站所有内容均为原创,本站保留所有权利。仅允许非商业用途的转载,但必须注明来源网站、作者、来源链接!否则,由此造成的一切后果,由转载方承担!
干货分享、技术提升、面试笔试、学习交流,欢迎关注公众号:xuesql。QQ学习交流群:209942678。