题目来源:
leetcode题目,网址:LCR 173. 点名 - 力扣(LeetCode)
解题思路:
二分找出第一个不是递增 1 的位置即可。
解题代码:
- class Solution {
- public:
- int takeAttendance(vector<int>& records) {
- if(records[0]!=0){
- return 0;
- }else if(records[records.size()-1]!=records.size()){
- return records.size();
- }
- int left=1;
- int right=records.size()-1;
- while(left<=right){
- int mid=left+(right-left)/2;
- if(records[mid-1]==mid-1 && records[mid]>mid){
- return mid;
- }else if(records[mid]==mid){
- left=mid+1;
- }else{
- right=mid-1;
- }
- }
- return -1;
- }
- };
总结:
无官方题解。