【算法题】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 <= 10^5

1 <= mass <= 10^3

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";
        }
    }
}
相关推荐
文心快码BaiduComate1 分钟前
CCF程序员大会码力全开:AI加速营决赛入围名单揭晓,12月6日大理见!
前端·百度·程序员
vivo互联网技术4 分钟前
从不足到精进:H5即开并行加载方案的演进之路
前端·h5·webview·客户端·大前端
AwakeFantasy6 分钟前
关于fluid打字机问题的解决记录
javascript·博客·hexo·fluid
坐吃山猪7 分钟前
Electron03-桌面文件夹
开发语言·javascript·ecmascript
橘颂TA7 分钟前
【剑斩OFFER】算法的暴力美学——Z字行变换
算法·leetcode·职场和发展·结构与算法
我命由我123458 分钟前
微信小程序 - 内容弹出框实现(Vant Weapp 实现、原生实现)
开发语言·前端·javascript·微信小程序·小程序·前端框架·js
minji...13 分钟前
linux 进程控制(一) (fork进程创建,exit进程终止)
linux·运维·服务器·c++·git·算法
埃伊蟹黄面14 分钟前
双指针算法
数据结构·c++·算法
java修仙传14 分钟前
力扣hot100:反转链表
算法·leetcode·链表
裴嘉靖16 分钟前
uniapp做的APP和安卓苹果做的什么区别
前端