nums라고 하는 양의 정수로 구성된 비감소 배열과 정수 K가 있다고 가정하면 이 배열을 길이가 K 이상인 하나 이상의 분리된 증가 부분 시퀀스로 나눌 수 있는지 알아내야 합니다.
따라서 입력이 nums =[1,2,2,3,3,4,4], K =3과 같으면 이 배열은 [1, 2,3,4] 및 [2,3,4] 길이가 각각 3 이상입니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
d :=새 지도
-
요구:=0
-
숫자로 된 각 i에 대해 수행
-
i가 d에 없으면 0이 아닌 경우
-
d[i]:=1
-
-
그렇지 않으면
-
d[i] :=d[i] + 1
-
-
req :=req의 최대값, d[i]
-
-
req*K <=숫자 크기
일 때 true를 반환합니다.
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
class Solution(object): def canDivideIntoSubsequences(self, nums, K): d = {} req = 0 for i in nums: if i not in d: d[i]=1 else: d[i]+=1 req = max(req,d[i]) return req*K<=len(nums) ob = Solution() print(ob.canDivideIntoSubsequences([1,2,2,3,3,4,4],3))
입력
[1,2,2,3,3,4,4]. 3
출력
True