很简单的二分查找。
弱智一开始直接复制mid=(1+n)/2
结果TLE,愣是没发现错误。
以为方法错了。
然后复制别人代码,int溢出。
// Forward declaration of isBadVersion API. bool isBadVersion(int version); class Solution { public: int firstBadVersion(int n) { if(isBadVersion(1)){ return 1; } int bg=1; int mid= (1+n)/2; while(n-bg>1){ if(isBadVersion(mid)){ n=mid; } else{ bg=mid; } mid= bg+(n-bg)/2; } return n; } };
原文地址:https://www.cnblogs.com/azureice/p/leetcode278.html
时间: 2024-10-07 06:20:13