根据规则将箱子分类【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)
- 复杂度