一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 323|回复: 3
收起左侧

[其他] 关于INT_MIN,INT_MAX

[复制链接] |试试Instant~ |关注本帖
MicX 发表于 2016-11-5 18:11:46 | 显示全部楼层 |阅读模式

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
总是看到有人说INT_MIN,INT_MAX会容易遇到corner case会跪,之前觉得是不是判断INT_MIN > 正数要做减法然后就越界了,刚刚测试了下好像不是。求大神讲解一下corner case……

一般我会用flag之类的标记有没有读第一个,然后用第一个数做max或min的,但是像validate BST的题,就必须要用long long(INT_MIN)-1 和 longlong(INT_MAX)+1, 很担心面试遇到,自己又没想清楚corner case。真心求教!

补充内容 (2016-11-6 07:36):
感觉好像举错例子了,像validate BST这种逻辑上要和最大最小比较的楼主没问题,担心的是c++自己的坑……想征集一下大家在INT_MIN,和INT_MAX上踩过的坑……因为目前用过的都没遇到(可能楼主刷题太少...
ykwwind 发表于 2016-11-6 07:18:09 | 显示全部楼层
就说validate BST...为啥子要扩大范围,原因就一句话....因为Integer.MAX_VALUE 和Integer.MIN_VALUE有可能会出现在左右子树....
你要构建的上下边界最理想的取值是+- infinity...Integer里凑不出来,拿long来用...就这么简单.
换成js,就写个Number.POSITIVE_INFINITY/NEGATIVE_INFINITY...

你如果真背个“什么时候不能,什么时候能...我保证你面试遇到不说会跪,但是绝逼窘迫"
回复 支持 反对

使用道具 举报

 楼主| MicX 发表于 2016-11-6 07:26:42 | 显示全部楼层
ykwwind 发表于 2016-11-6 07:18
就说validate BST...为啥子要扩大范围,原因就一句话....因为Integer.MAX_VALUE 和Integer.MIN_VALUE有可能 ...

谢谢!没打算背0.0……因为之前学竞赛感觉大家都不用它……最近写leetcode也没遇到过因为这个卡掉的corner case。想请教一下哪里可能会出问题~这样面试时用它不虚~感谢给的建议!
回复 支持 反对

使用道具 举报

firehaily 发表于 2016-11-10 07:30:09 | 显示全部楼层
可以用long long
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-5 01:51

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表