leetcode 29

编程入门 行业动态 更新时间:2024-10-06 18:20:52

<a href=https://www.elefans.com/category/jswz/34/1769930.html style=leetcode 29"/>

leetcode 29


dividend 和 divisor都是int 类型,返回值也是int类型,

在C++中,int类型表示整数类型,其范围取决于具体的实现。通常情况下,int类型的范围为-2147483648到2147483647,即-231到231-1。这是因为int类型通常为32位有符号整数。然而,具体的范围可能会因编译器、操作系统和硬件平台的不同而有所变化。为了确保跨平台的可移植性,可以使用标准库中的头文件中定义的常量来获取int类型的范围,例如INT_MIN和INT_MAX。

存在越界的问题在于, -2147483648/-1 = 2147483648 大于int的正整数边界。

class Solution {
public:int divide(int dividend, int divisor) {if(dividend == INT_MIN){if(divisor == -1){return INT_MAX;}}return dividend/divisor;}
};

leetcode 平台居然通过了,没有判断divisor==0的情况;

class Solution {
public:int divide(int dividend, int divisor) {if(dividend == INT_MIN){if(divisor == -1){return INT_MAX;}if(divisor == 1){return INT_MIN;}}if(divisor == INT_MIN){if(dividend == INT_MIN){return 1;}else{return 0;}}if(divisor == 0){return 0;}return dividend/divisor;}
};

增加对INT_MIN/INT_MIN == 1的情况的判定,可以提高运行速度。

正数除以INT_MIN不会等于0。INT_MIN是一个负数,而正数除以负数会得到一个负数的结果。在C++中,当一个正数除以一个负数时,结果会向零取整,即取整数部分,而不是四舍五入。因此,正数除以INT_MIN的结果将是一个负数。

更多推荐

leetcode 29

本文发布于:2023-12-03 23:30:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1658951.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:leetcode

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!