leetcode 2525 根据规则将箱子分类 c++ pyhton java c题解

简介: leetcode 2525 根据规则将箱子分类 c++ pyhton java c题解

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%

解题思路

首先,我们要明确每个条件的含义。

  1. 长度、宽度、高度大于等于104:这个条件意味着至少有一个维度(长度、宽度或高度)的尺寸大于或等于104。这通常被看作是"大件"的一个特征,因为如果一个物品的某个维度特别大,它可能不容易搬运或存储。
  2. 体积大于等于109:这个条件是看箱子的总体积,也就是长度、宽度和高度三个维度的乘积是否大于或等于109。如果体积大,那么无论哪个方向上看起来都不小,因此也属于"大件"的范畴。
  3. 质量大于等于100:这个条件表示箱子的质量大于或等于100。这通常代表这个箱子比较重。

然后,我们根据这些条件来决定箱子的类型:

  1. “Both”(又大又重):如果一个箱子同时满足"大"和"重"两个条件,那么它就属于"Both"这个类别。
  2. “Bulky”(大件):如果一个箱子只满足"大"的条件,但并不满足"重"的条件,那么它就属于"Bulky"这个类别。
  3. “Heavy”(重件):如果一个箱子只满足"重"的条件,但并不满足"大"的条件,那么它就属于"Heavy"这个类别。
  4. “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 * height
        isBulky = maxd >= 10000 or vol >= 10**9
        isHeavy = mass >= 100
        if isBulky and isHeavy:
            return 'Both'
        if isBulky:
            return 'Bulky'
        if isHeavy:
            return 'Heavy'
        return '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";
    }
}


目录
相关文章
|
1月前
|
安全 Java
Java异常处理:程序世界的“交通规则
Java异常处理:程序世界的“交通规则
317 98
|
2月前
|
jenkins Shell 测试技术
|
1月前
|
存储 Java Go
【Java】(3)8种基本数据类型的分析、数据类型转换规则、转义字符的列举
牢记类型转换规则在脑海中将编译和运行两个阶段分开,这是两个不同的阶段,不要弄混!
193 2
|
1月前
|
存储 人工智能 算法
从零掌握贪心算法Java版:LeetCode 10题实战解析(上)
在算法世界里,有一种思想如同生活中的"见好就收"——每次做出当前看来最优的选择,寄希望于通过局部最优达成全局最优。这种思想就是贪心算法,它以其简洁高效的特点,成为解决最优问题的利器。今天我们就来系统学习贪心算法的核心思想,并通过10道LeetCode经典题目实战演练,带你掌握这种"步步为营"的解题思维。
|
2月前
|
安全 jenkins Java
Java、Python、C++支持jenkins和SonarQube(一)
Jenkins 是一个开源的 持续集成(CI)和持续交付(CD) 工具,用于自动化构建、测试和部署软件项目。它基于 Java 开发,支持跨平台运行,并拥有丰富的插件生态系统,可以灵活地扩展功能
239 5
|
2月前
|
jenkins Java Shell
Java、Python、C++支持jenkins和SonarQube(全集)
Jenkins 是一个开源的持续集成(CI)和持续交付(CD)工具,用于自动化构建、测试和部署软件项目。它基于 Java 开发,支持跨平台运行,并拥有丰富的插件生态系统,可以灵活地扩展功能
325 1
|
2月前
|
jenkins Java 持续交付
Java、Python、C++支持Jenkins和SonarQube(三)
Python与Jenkins和SonarQube
105 1
|
2月前
|
jenkins Java 测试技术
|
5月前
|
算法 Java 数据库连接
Java 与 C++ 区别深入剖析及应用实例详解
本文深入剖析了Java和C++两种编程语言的区别,从编译与执行机制、面向对象特性、数据类型与变量、内存管理、异常处理等方面进行对比,并结合游戏开发、企业级应用开发、操作系统与嵌入式开发等实际场景分析其特点。Java以跨平台性强、自动内存管理著称,适合企业级应用;C++则因高性能和对硬件的直接访问能力,在游戏引擎和嵌入式系统中占据优势。开发者可根据项目需求选择合适语言,提升开发效率与软件质量。附面试资料链接:[点此获取](https://pan.quark.cn/s/4459235fee85)。
524 0
|
Java 程序员
java基础(5)标识符命名规则和命名规范
Java标识符命名规则包括只能使用数字、字母、下划线\_、$,且数字不能开头,不能使用关键字命名,且严格区分大小写。命名规范建议类名、接口名首字母大写,变量名、方法名首字母小写,常量名全大写。
509 2

热门文章

最新文章