leetcode 278. First Bad Version
2017-03-01 09:47
357 查看
很简单的二分搜索的题目,但是提交得时候在一个case:2126753390 versions 1702766719 is the first bad version TLE了。
原因是求中位数的时候公式使用得不恰当。或者将int改成long long int。
//int mid = (leftInd + rightInd) / 2; 会溢出
int mid = leftInd + (rightInd - leftInd) / 2;
// Forward declaration of isBadVersion API.
bool isBadVersion(int version);
class Solution {
public:
int firstBadVersion(int n) {
int leftInd = 1, rightInd = n;
while (leftInd <= rightInd) {
int mid = leftInd + (rightInd - leftInd) / 2;
//int mid = (leftInd + rightInd) / 2;
//cout << leftInd << " " << mid << " " << rightInd << endl;
if (isBadVersion(mid)) {
rightInd = mid - 1;
} else {
leftInd = mid + 1;
}
}
return leftInd;
}
};
原因是求中位数的时候公式使用得不恰当。或者将int改成long long int。
//int mid = (leftInd + rightInd) / 2; 会溢出
int mid = leftInd + (rightInd - leftInd) / 2;
// Forward declaration of isBadVersion API.
bool isBadVersion(int version);
class Solution {
public:
int firstBadVersion(int n) {
int leftInd = 1, rightInd = n;
while (leftInd <= rightInd) {
int mid = leftInd + (rightInd - leftInd) / 2;
//int mid = (leftInd + rightInd) / 2;
//cout << leftInd << " " << mid << " " << rightInd << endl;
if (isBadVersion(mid)) {
rightInd = mid - 1;
} else {
leftInd = mid + 1;
}
}
return leftInd;
}
};
相关文章推荐
- leetcode -- Populating Next Right Pointers in Each Node
- leetcode JAVA Jump Game 难度系数3 3.18
- 【LeetCode】Palindrome Number
- [LeetCode 题解]: Merge k Sorted Lists
- [LeetCode] Partition List
- leetcode: Best Time to Buy and Sell Stock III
- 【leetcode】Reverse Nodes in k-Group (hard)☆
- LeetCode | Add Two Numbers
- Binary Tree Inorder Traversal ——LeetCode
- leetcode之Invert Binary Tree
- leetCode 98.Validate Binary Search Tree (有效二叉搜索树) 解题思路和方法
- leetcode - 位运算题目汇总(上)
- [LeetCode] Perfect Squares
- [LeetCode] 57. Insert Interval 解决思路
- LeetCode笔记:Move Zeros[Difficulty: Easy]
- leetcode——46——Permutations
- [leetcode] 【链表】 138. Copy List with Random Pointer
- 【一天一道LeetCode】#257. Binary Tree Paths
- [leetcode] 399. Evaluate Division 解题报告
- [LeetCode]Reverse Linked List II