1. 題目解析
Leetcode題目鏈接:LCR 173. 點名
?
這個問題的理解其實相當簡單,只需看一下示例,基本就能明白其含義了。
核心在于找到題目所給的連續數組中缺失的數字即可。
2.算法原理
在這個升序的數組中,我們發現:
- 在第?個缺失位置的左邊,數組內的元素都是與數組的下標相等的;
- 在第?個缺失位置的右邊,數組內的元素與數組下標是不相等的。
因此,我們可以利?這個特性,來使用二分查找算法。
3.代碼編寫
class Solution
{
public:int takeAttendance(vector<int>& records) {int n = records.size() - 1;int left = 0, right = n, mid = 0;while(left < right){mid = (left + right)/2;if(records[mid] == mid){left = mid + 1;}else{right = mid;}}if (records[right] == right) {return right+1;}return right;}
};
The Last
嗯,就是這樣啦,文章到這里就結束啦,真心感謝你花時間來讀。
覺得有點收獲的話,不妨給我點個贊吧!
如果發現文章有啥漏洞或錯誤的地方,歡迎私信我或者在評論里提醒一聲~?