Участник:Никита Плетнев/video stitching

Материал из DISCOPAL
< Участник:Никита Плетнев
Версия от 14:23, 12 декабря 2020; Никита Плетнев (обсуждение | вклад) (Новая страница: «https://leetcode.com/problems/video-stitching/submissions/ <code-cpp> bool cmp(vector<int> clip1, vector<int> clip2) { if (clip1[0] < clip2[0]) retu…»)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

https://leetcode.com/problems/video-stitching/submissions/

bool cmp(vector<int> clip1, vector<int> clip2) {
    if (clip1[0] < clip2[0]) 
        return true;
    if (clip1[0] > clip2[0]) 
        return false;
    if (clip1[1] > clip2[1]) 
        return true;
    return false;
}
 
class Solution {
public:
    int videoStitching(vector<vector<int>>& clips, int T) {
        sort(clips.begin(), clips.end(), cmp);
        int n_clips = clips.size();
        int left_bound = clips[0][0], right_bound = clips[0][1];
        if (T == 0)
            return 0;
        if (left_bound > 0) 
            return -1;
        int count = 1;
        if (right_bound >= T) 
            return count;
        int next = right_bound;
        for (int i = 0; i < n_clips; ++i) {
            if (clips[i][0] > right_bound) {
                if (right_bound >= next) 
                    return -1;
                right_bound = next;
                ++count;
                if (right_bound >= T) 
                    return count;
            }
            if (clips[i][1] > next)
                next = clips[i][1];
        }
        if (next >= T)
            return count + 1;
        return -1;
    }
};