Задача: Неубывающий подмассив
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)))