费县住房和城乡建设局网站,深圳龙岗区平湖街道,厦门+外贸公司做网站,软件商店下载最新版文章目录 Tag题目来源题目解读解题思路方法一#xff1a;分类讨论 其他语言cpython3 写在最后 Tag
【分类讨论】【2023-10-20】 题目来源
2525. 根据规则将箱子分类 题目解读
题目意思明确#xff0c;根据条件判断箱子的类别。 解题思路
方法一#xff1a;分类讨论
根据… 文章目录 Tag题目来源题目解读解题思路方法一分类讨论 其他语言cpython3 写在最后 Tag
【分类讨论】【2023-10-20】 题目来源
2525. 根据规则将箱子分类 题目解读
题目意思明确根据条件判断箱子的类别。 解题思路
方法一分类讨论
根据题目的意思模拟首先维护两个 bool 变量 isBulky 和 isHeavy来记录箱子的 Bulky 和 Heavy 状况初始都为 false。
根据箱子的任一维度大于等于 1e4 与否或者箱子的体积大于等于 1e9 与否更新 isBulky。需要注意点是体积可能会越界超出int整型可以表示的最大范围因此先将体积强转成 long long 类型再以 1e9 进行比较。
根据箱子的质量是否大于等于 100 更新 isHeavy。
接下来就是条件语句的书写了这里没有使用 if...else .. 语句而是直接使用的 if这样可以省去一些判断上的失误。但是并不是所有的 if...else .. 语句都可以改成 if 语句至少本题是可以修改的。
实现代码
class Solution {
public:string categorizeBox(int length, int width, int height, int mass) {bool isBulky false;bool isHeavy false;if (length 1e4 || width 1e4 || height 1e4 || (long long) length * width * height 1e9) {isBulky true;}if (mass 100) isHeavy true;if (isBulky isHeavy) return Both;if (!isBulky !isHeavy) return Neither;if (isBulky !isHeavy) return Bulky;return Heavy;}
};复杂度分析
时间复杂度 O ( 1 ) O(1) O(1)。
空间复杂度 O ( 1 ) O(1) O(1)。 其他语言
c
char * categorizeBox(int length, int width, int height, int mass){int x (length 10000 || width 10000 || height 10000 || (long long)length * height * width 1000000000);int y (mass 100);if (x y) return Both;if (x) return Bulky;if (y) return Heavy;return Neither;
}python3
class Solution:def categorizeBox(self, length: int, width: int, height: int, mass: int) - str:x length 10000 or width 10000 or height 10000 or length * width * height 10 ** 9y mass 100if x and y: return Bothif x: return Bulkyif y: return Heavyreturn Neither写在最后
如果文章内容有任何错误或者您对文章有任何疑问欢迎私信博主或者在评论区指出 。
如果大家有更优的时间、空间复杂度方法欢迎评论区交流。
最后感谢您的阅读如果感到有所收获的话可以给博主点一个 哦。