Задача: Неубывающий подмассив

Задача: Неубывающий подмассив

https://t.me/python_job_interview

Условие: дается целочисленный массив nums, верните все различные возможные неубывающие подпоследовательности данного массива, по крайней мере, с двумя элементами. Вы можете вернуть ответ в любом порядке.


Пример:

Ввод: nums = [4,6,7,7]

Вывод: [[4,6],[4,6,7],[4,6,7,7],[4,7],[4,7,7],[6,7],[6,7,7],[7,7]]


Ввод: nums = [4,4,3,2,1]

Вывод: [[4,4]]

Решение:

class Solution:
    def findSubsequences(self, nums: List[int]) -> List[List[int]]:
        def rec(ind, path=[]):
            if len(path) > 1:
                yield path
            for i in range(ind, len(nums)):
                if not path or nums[i] >= path[-1]:
                    yield from rec(i+1, path+[nums[i]])
        return list(set(tuple(i) for i in rec(0)))



Report Page