根据规则将箱子分类【LC2525】
给你四个整数
length,width,height和mass,分别表示一个箱子的三个维度和质量,请你返回一个表示箱子 类别 的字符串。
如果满足以下条件,那么箱子是
"Bulky"的:
- 箱子 至少有一个 维度大于等于
104。- 或者箱子的 体积 大于等于
109。如果箱子的质量大于等于
100,那么箱子是"Heavy"的。如果箱子同时是
"Bulky"和"Heavy",那么返回类别为"Both"。如果箱子既不是
"Bulky",也不是"Heavy",那么返回类别为"Neither"。如果箱子是
"Bulky"但不是"Heavy",那么返回类别为"Bulky"。如果箱子是
"Heavy"但不是"Bulky",那么返回类别为"Heavy"。注意,箱子的体积等于箱子的长度、宽度和高度的乘积。
-
实现:变量标记
class Solution { public String categorizeBox(int length, int width, int height, int mass) { boolean isBulky = false, isHeavy = false; long v = 1L * length * width * height; if (length >= 10000 || width >= 10000 || height >= 10000 || v >= 1e9){ isBulky = true; } if (mass >= 100){ isHeavy = true; } if (isBulky && isHeavy){ return "Both"; }else if (isBulky){ return "Bulky"; }else if (isHeavy){ return "Heavy"; }else{ return "Neither"; } } }- 复杂度
- 时间复杂度: O ( 1 ) \mathcal{O}(1) O(1)
- 空间复杂度: O ( 1 ) \mathcal{O}(1) O(1)
- 复杂度
-
实现:数组标记
class Solution { public String categorizeBox(int length, int width, int height, int mass) { int ans = 0; long v = 1L * length * width * height; if (length >= 10000 || width >= 10000 || height >= 10000 || v >= 1e9){ ans |= 1; } if (mass >= 100){ ans |= 2; } String[] ss = {"Neither", "Bulky", "Heavy", "Both"}; return ss[ans]; } }- 复杂度
- 时间复杂度: O ( 1 ) \mathcal{O}(1) O(1)
- 空间复杂度: O ( 1 ) \mathcal{O}(1) O(1)
- 复杂度
LC2525:根据规则将箱子分类
博客围绕LeetCode题目LC2525展开,该题要求根据箱子的三个维度和质量,按规则将箱子分类并返回类别字符串。介绍了判断箱子类别的具体条件,还给出了变量标记和数组标记两种实现方式,且两种方式的时间和空间复杂度均为O(1)。
16万+

被折叠的 条评论
为什么被折叠?



