Leet Code First Bad Version(C)
来源:互联网 发布:伴随矩阵怎么求 编辑:程序博客网 时间:2024/06/15 12:21
题目并不难,思想用二分查找来做
<span style="font-size:18px;">// Forward declaration of isBadVersion API.bool isBadVersion(int version);int firstBadVersion(int n) { unsigned int start = 1,end = n; int medium = (double)n/2 + (double)1/2; while(medium <= n && medium > 0 && end > start){ if(isBadVersion(medium)){ if(medium - 1 >= start && !isBadVersion(medium - 1)){ return medium; //break; }else{ end = medium - 1; if(end < start || end < 1) break; } }else{ if(medium + 1 <= end && isBadVersion(medium + 1)){ //break; return medium+1; }else{ start = medium +1; printf("start:%u\n",start); if(end < start || start > n ) break; } } if(end%2 && start%2) medium = end/2 + start/2 + 1; else medium = end/2 + start/2; } return medium;}</span>这个题目恶心在,中间有个例子的version是2147483647,恰好是int类型的最大上界
所以二分查找中的时候取中位数的时候导致越界,从而出错
更改了一下变量类型,并在处理中位数细节的时候进行注意才算通过
0 0
- Leet Code First Bad Version(C)
- 【LeetCode-278】 First Bad Version(C++)
- [刷题]First Bad Version
- first bad version
- First Bad Version
- [leetcode]First Bad Version
- First Bad Version
- LeetCode First Bad Version
- [leetcode] First Bad Version
- 278 First Bad Version
- First Bad Version
- [Leetcode]First Bad Version
- Leetcode: First Bad Version
- leetcode First Bad Version
- LeetCode || First Bad Version
- [leetcode]First Bad Version
- Leetcode: First Bad Version
- First Bad Version
- Intent隐式激活
- 关于opencv提取ORB特征时 cannot declare variable ‘orb’ to be of abstract type ‘cv::ORB问题
- window.onload和body.onload该放什么位置
- 为mysql安装sysbench
- Python使用filecmp校验源目录备份目录
- Leet Code First Bad Version(C)
- 牛客网-构造回文字符串
- nginx的配置、虚拟主机、负载均衡和反向代理
- C++11 lambda使用注意
- 四大组件之广播BroadcastReceiver
- Extjs的Requiers作用
- 《Linux学习》之设置默认启动界面
- Docker教程(一) Docker入门教程
- 腾讯面试题-回文构造