Участник:Лукьянов Кирилл/Split Array into Consecutive Subsequences

Материал из DISCOPAL
Перейти к: навигация, поиск

https://leetcode.com/problems/split-array-into-consecutive-subsequences/

class Solution:
    def isPossible(self, nums: List[int]) -> bool:
        kolf = 0
        kolf_f = 0
        kol1 = 1
        kol1_f = 0
        kol2_f = 0
        kol2 = 0
        err = 0
        ind = nums[0]
        del nums[0]
        for i, nums[i] in enumerate(nums):
            if nums[i] == ind:
                if kol1_f > 0:
                    kol1_f -= 1
                    kol2 += 1
                elif kol2_f > 0:
                    kol2_f -= 1
                    kolf += 1
                elif kolf_f > 0:
                    kolf_f -= 1
                    kolf += 1
                else:
                    kol1 += 1
            elif nums[i] == ind + 1:
                ind += 1
                if kol1_f != 0 or kol2_f != 0:
                    return False
                kolf_f = kolf
                kol1_f = kol1
                kol2_f = kol2
                kol2 = 0
                kol1 = 0
                kolf = 0
                # i -= 1
                if kol1_f > 0:
                    kol1_f -= 1
                    kol2 += 1
                elif kol2_f > 0:
                    kol2_f -= 1
                    kolf += 1
                elif kolf_f > 0:
                    kolf_f -= 1
                    kolf += 1
                else:
                    kol1 += 1
            elif nums[i] - ind > 1:
                if kol1 > 0 or kol2 > 0 or kol1_f > 0 or kol2_f > 0:
                    return False
                else:
                    kolf = 0
                    kolf_f = 0
                    ind = nums[i]
                    # i -= 1
                    if kol1_f > 0:
                        kol1_f -= 1
                        kol2 += 1
                    elif kol2_f > 0:
                        kol2_f -= 1
                        kolf += 1
                    elif kolf_f > 0:
                        kolf_f -= 1
                        kolf += 1
                    else:
                        kol1 += 1
 
        if kol1 == 0 and kol2 == 0 and kol1_f == 0 and kol2_f == 0:
            return True
        else:
            return False