leetcode278.First Bad Version 关于有符号数加法溢出的错误
来源:互联网 发布:网络实名制的利弊 编辑:程序博客网 时间:2024/05/21 23:33
1、不会溢出的写法
bool isBadVersion(int version);class Solution {public: int firstBadVersion(int n) {int left = 1,right =n,mid = 0;while(left<=right){mid = left +(right-left)/2;if (isBadVersion(mid)) right = mid-1;else left = mid+1;}return left; }};说明:在有符号数加法中,mid = (left+right)/2容易造成溢出,mid = left+(right-left)/2是比较安全的写法
2、溢出的写法
bool isBadVersion(int version);class Solution {public: int firstBadVersion(int n) {int left = 1,right =n,mid = 0;while(left<=right){mid = (right+left)/2;if (isBadVersion(mid)) right = mid-1;else left = mid+1;}return left; }};评测时会溢出报错
说明:在深入理解计算机系统中,关于有符号数加法的说明
0 0
- leetcode278.First Bad Version 关于有符号数加法溢出的错误
- leetcode278:First Bad Version
- leetcode278---First Bad Version
- LeetCode278. First Bad Version
- Leetcode278. First Bad Version
- Leetcode278. First Bad Version
- leetcode278. First Bad Version
- LeetCode278. First Bad Version(二分)
- LeetCode278 find the first bad version
- 关于操作有符号数的溢出问题
- 关于C有符号数数值溢出
- LeetCode278——First Bad Version(二分查找+一个注意点)
- [Lintcode]First Bad Version 第一个错误的代码版本
- 如何判断有符号数的溢出
- 有符号数溢出的判断
- 二进制有符号数加法
- 二进制有符号数加法
- 无符号数与有符合数的加法
- UISplitViewController学习笔记(iOS8)
- Buileder(生成器)—对象创建型模式
- 内部类里的静态内部类
- 使用brew安装hexo报错--- Cowardly refusing to `sudo brew install`
- Java解析Excel2003、Excel2007(POI)
- leetcode278.First Bad Version 关于有符号数加法溢出的错误
- 关于Gradle
- Android中JNI的使用方法
- 3 Timer定时器、心跳检测及Task进阶实例:mysql连接池
- Android SurfaceView
- HTML5 - 分组元素
- java double类型保留两位小数4种方法
- Ehcache 整合Spring 使用页面、对象缓存
- Android View系统源码分析(一)——概述&触摸事件总体处理流程