nums라는 숫자 목록이 있다고 가정합니다. 결과 목록의 접두사 합계에 모두 0보다 큰 숫자가 포함되도록 nums의 시작 부분에 삽입할 수 있는 최소 양수 값을 찾아야 합니다.
따라서 입력이 nums =[3, -6, 4, 3]과 같으면 출력은 4가 됩니다. 목록에 4를 삽입하면 [4, 3, -6, 4, 3]이 되기 때문입니다. . 이제 접두사 합계는 [4, 7, 1, 5, 8]이며 모두 0보다 큽니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
위치 0의 숫자에 0 삽입
-
범위 1에서 숫자 - 1까지의 i에 대해 수행
-
숫자[i] :=숫자[i] + 숫자[i - 1]
-
-
1 반환 - 최소 숫자
예시
이해를 돕기 위해 다음 구현을 살펴보겠습니다.
def solve(nums): nums.insert(0, 0) for i in range(1, len(nums)): nums[i] += nums[i - 1] return 1 - min(nums) nums = [3, -6, 4, 3] print(solve(nums))
입력
[3, -6, 4, 3]
출력
4