タイトル説明
ソリューションの二分法
手間を省くことができれば、自分で書くことはしません。
class Solution {
public:
int missingNumber(vector<int>& nums) {
int l = 0, r = nums.size() - 1;
//cout<< "l:"<<l <<" "<< "r:" << r;
while(l <= r) {
int mid = (l + r) >> 1;
if(mid == nums[mid]) l = mid + 1;
else r = mid - 1;
//cout<< "l:"<<l <<" "<< "r:" << r;
}
return l;
}
};
時間計算量O(logN)
空間計算量O(N)