2525. 根据规则将箱子分类 --力扣 --JAVA

题目

给你四个整数 length ,width ,height 和 mass ,分别表示一个箱子的三个维度和质量,请你返回一个表示箱子 类别 的字符串。

  • 如果满足以下条件,那么箱子是 "Bulky" 的:
    • 箱子 至少有一个 维度大于等于 104 。
    • 或者箱子的 体积 大于等于 109 。
  • 如果箱子的质量大于等于 100 ,那么箱子是 "Heavy" 的。
  • 如果箱子同时是 "Bulky" 和 "Heavy" ,那么返回类别为 "Both" 。
  • 如果箱子既不是 "Bulky" ,也不是 "Heavy" ,那么返回类别为 "Neither" 。
  • 如果箱子是 "Bulky" 但不是 "Heavy" ,那么返回类别为 "Bulky" 。
  • 如果箱子是 "Heavy" 但不是 "Bulky" ,那么返回类别为 "Heavy" 。

注意,箱子的体积等于箱子的长度、宽度和高度的乘积。

解题思路

  1. 获取体积和最大维度;
  2. 对可能的情况进行分类讨论并返回结果。

代码展示

class Solution {
    public String categorizeBox(int length, int width, int height, int mass) {
        Long volume = 1L * length * width * height;
        int maxDimension = Math.max(length, Math.max(width,height));
        String ans = "Neither";
        if(volume >= 1000000000 || maxDimension >= 10000){
            ans = "Bulky";
        }
        if(mass >= 100){
            if("Bulky".equals(ans)){
                ans = "Both";
            } else {
                ans = "Heavy";
            }
        }
        return ans;
    }
}

你可能感兴趣的:(力扣练习,算法,数据结构)