网站开发必用代码,苏州制作网页公司,增加网站访客,承德网站建设怎么做leetcode 2525 根据规则将箱子分类
题目
给你四个整数 length #xff0c;width #xff0c;height 和 mass #xff0c;分别表示一个箱子的三个维度和质量#xff0c;请你返回一个表示箱子 类别 的字符串。
如果满足以下条件#xff0c;那么箱子是 “Bulky” 的#…leetcode 2525 根据规则将箱子分类
题目
给你四个整数 length width height 和 mass 分别表示一个箱子的三个维度和质量请你返回一个表示箱子 类别 的字符串。
如果满足以下条件那么箱子是 “Bulky” 的 箱子 至少有一个 维度大于等于 104 。 或者箱子的 体积 大于等于 109 。 如果箱子的质量大于等于 100 那么箱子是 “Heavy” 的。 如果箱子同时是 “Bulky” 和 “Heavy” 那么返回类别为 “Both” 。 如果箱子既不是 “Bulky” 也不是 “Heavy” 那么返回类别为 “Neither” 。 如果箱子是 “Bulky” 但不是 “Heavy” 那么返回类别为 “Bulky” 。 如果箱子是 “Heavy” 但不是 “Bulky” 那么返回类别为 “Heavy” 。 注意箱子的体积等于箱子的长度、宽度和高度的乘积。
示例 1
输入length 1000, width 35, height 700, mass 300 输出“Heavy” 解释 箱子没有任何维度大于等于 104 。 体积为 24500000 109 。所以不能归类为 “Bulky” 。 但是质量 100 所以箱子是 “Heavy” 的。 由于箱子不是 “Bulky” 但是是 “Heavy” 所以我们返回 “Heavy” 。 示例 2
输入length 200, width 50, height 800, mass 50 输出“Neither” 解释 箱子没有任何维度大于等于 104 。 体积为 8 * 106 109 。所以不能归类为 “Bulky” 。 质量小于 100 所以不能归类为 “Heavy” 。 由于不属于上述两者任何一类所以我们返回 “Neither” 。
提示
1 length, width, height 105 1 mass 103 通过次数 20.5K 提交次数 42.1K 通过率 48.8%
解题思路
首先我们要明确每个条件的含义。
长度、宽度、高度大于等于104这个条件意味着至少有一个维度长度、宽度或高度的尺寸大于或等于104。这通常被看作是大件的一个特征因为如果一个物品的某个维度特别大它可能不容易搬运或存储。体积大于等于109这个条件是看箱子的总体积也就是长度、宽度和高度三个维度的乘积是否大于或等于109。如果体积大那么无论哪个方向上看起来都不小因此也属于大件的范畴。质量大于等于100这个条件表示箱子的质量大于或等于100。这通常代表这个箱子比较重。
然后我们根据这些条件来决定箱子的类型
“Both”又大又重如果一个箱子同时满足大和重两个条件那么它就属于Both这个类别。“Bulky”大件如果一个箱子只满足大的条件但并不满足重的条件那么它就属于Bulky这个类别。“Heavy”重件如果一个箱子只满足重的条件但并不满足大的条件那么它就属于Heavy这个类别。“Neither”都不是如果一个箱子既不满足大的条件也不满足重的条件那么它就属于Neither这个类别。
代码
c class Solution {
public:string categorizeBox(int length, int width, int height, int mass) {long long maxd max(length, max(width, height)), vol 1L * length * width * height;bool isBulky maxd 10000 || vol 1000000000, isHeavy mass 100;if (isBulky isHeavy) {return Both;} else if (isBulky) {return Bulky;} else if (isHeavy) {return Heavy;} else {return Neither;}}
}; java class Solution {public String categorizeBox(int length, int width, int height, int mass) {long maxd Math.max(length, Math.max(width, height)), vol 1L * length * width * height;boolean isBulky maxd 10000 || vol 1000000000, isHeavy mass 100;if (isBulky isHeavy) {return Both;} else if (isBulky) {return Bulky;} else if (isHeavy) {return Heavy;} else {return Neither;}}
}
python class Solution:def categorizeBox(self, length, width, height, mass):maxd max(length, width, height)vol length * width * heightisBulky maxd 10000 or vol 10**9isHeavy mass 100if isBulky and isHeavy:return Bothif isBulky:return Bulkyif isHeavy:return Heavyreturn Neither c char * categorizeBox(int length, int width, int height, int mass){int maxd fmax(length, fmax(width, height));long long vol 1LL * length * width * height;bool isBulky maxd 10000 || vol 1000000000, isHeavy mass 100;if (isBulky isHeavy) {return Both;} else if (isBulky) {return Bulky;} else if (isHeavy) {return Heavy;} else {return Neither;}
}