배열 num과 target이라는 다른 값이 있다고 가정합니다. 이제 서로 다른 하위 배열의 값 합계가 대상과 같도록 비어 있지 않은 비중첩 하위 배열의 최대 수를 찾아야 합니다.
따라서 입력이 nums =[3,2,4,5,2,1,5] target =6과 같으면 두 개의 하위 배열 [2,4] 및 [1,5]가 있으므로 출력은 2가 됩니다. 합은 6과 같습니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
t :=단일 요소가 0인 새 집합
-
온도 :=0
-
답변:=0
-
숫자로 된 각 i에 대해 수행
-
온도 :=온도 + i
-
이전 :=임시 - 대상
-
prev가 t에 있으면
-
ans :=ans + 1
-
t :=단일 요소 temp가 있는 새 세트
-
-
그렇지 않으면
-
t에 temp를 삽입하십시오
-
-
-
반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예
def solve(nums, target): t = set([0]) temp = 0 ans=0 for i in nums: temp += i prev = temp-target if prev in t: ans += 1 t = set([temp]) else: t.add(temp) return ans nums = [3,2,4,5,2,1,5] target = 6 print(solve(nums, target))
입력
"poput","vwput",9
출력
2