nums라는 숫자 목록이 있다고 가정하고 이제 모든 인접한 하위 배열을 고려합니다. 이 하위 배열 각각을 합하고 이 모든 값의 합을 반환합니다. 마지막으로 결과를 10 ** 9 + 7로 수정합니다.
따라서 입력이 nums =[3, 4, 6]과 같으면 다음과 같은 하위 배열이 있으므로 출력은 43이 됩니다. - [3] [4] [6] [3, 4] [4, 6] [3, 4, 6] 이들의 합은 43입니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- N:=숫자 크기
- an:=0
- 0~숫자 크기 범위의 i에 대해
- n:=숫자[i]
- ans :=ans +(i+1) *(N-i) * n
- 리턴(Ans mod 1000000007)
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
class Solution: def solve(self, nums): N=len(nums) ans=0 for i in range(len(nums)): n=nums[i] ans += (i+1) * (N-i) * n return ans%1000000007 ob = Solution() print(ob.solve([3, 4, 6]))
입력
[3, 4, 6]
출력
43