849. Maximize Distance to Closest Person

class Solution {
public:
    int maxDistToClosest(vector<int>& seats) {
        int first = 0, last = seats.size() - 1;
        while (seats[first] == 0)   first++;
        while (seats[last] == 0)    last--;
        int md = 0, d = 0;
        for (int i = first + 1; i <= last; i++) {
            if (seats[i] == 0)
                d++;
            else {
                md = max(md, d);
                d = 0;
            }
        }
        return max(max(first, (int)seats.size() - last - 1), (md + 1) / 2);
    }
};

 

posted @ 2018-12-05 04:26  JTechRoad  阅读(80)  评论(0编辑  收藏  举报