订阅更新

判断三条线段能否组成三角形

SQL 实战 123 题 · 第 37 题 简单 约 2 分钟读完

LeetCode 610 · IF / CASE、条件表达式

本文目录
  1. 面试怎么回答
  2. 题意
  3. 表结构
  4. 思路
  5. 参考解法
  6. 易错点

面试怎么回答

任意两边之和大于第三边,三个条件同时满足才是三角形。我会用 CASE WHEN x + y > z AND x + z > y AND y + z > x THEN 'Yes' ELSE 'No' END,比 IF 和 && 的写法通用。

先把这段讲顺;面试官追问时,再展开下面的原理和细节。

详细讲解

题意

每行是三条线段的长度,判断它们能否组成三角形,输出 Yes 或 No。

表结构

  • triangle:x、y、z;(x, y, z) 为主键

思路

三角形的充要条件是任意两边之和大于第三边,三个不等式同时成立。用 IF 或 CASE WHEN 输出结果即可。

参考解法

select x,y,z, 
if(x+y>z && x+z>y && y+z>x,'Yes','No') triangle
from triangle

易错点

  • 只判断一组不等式不够,三组都要满足。
  • && 是 MySQL 的写法,标准 SQL 用 AND,CASE WHEN 的可移植性更好。
刷题进度保存在当前浏览器