Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 모든 홀수 길이 하위 배열의 합을 찾는 프로그램

<시간/>

nums라고 하는 양수 값 배열이 있다고 가정하고 가능한 모든 홀수 길이 하위 배열의 합을 찾아야 합니다. 우리가 알고 있듯이 하위 배열은 배열의 연속적인 하위 시퀀스입니다. num의 모든 홀수 길이 부분배열의 합을 찾아야 합니다.

따라서 입력이 nums =[3,8,2,5,7]과 같으면 출력은 다음과 같습니다. 홀수 길이 하위 배열은 -

nums[0] = 3
nums[1] = 8
nums[2] = 2
nums[3] = 5
nums[4] = 7
nums[0..2], so sum = 13
nums[1..3], so sum = 15
nums[2..4], so sum = 14
nums[0..4] = 25
So total sum is 3+8+2+5+7+13+15+14+25 = 92

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • 총계:=0

  • 아이디:=0

  • l:=홀수 배치된 모든 인덱스의 목록

  • 동안 idx

    • k:=l[idx]

    • 범위 0에서 숫자 크기까지의 i에 대해

      • i+k <숫자 크기 + 1이면

        • total :=total + 인덱스 i부터 i+k-1까지의 숫자에 있는 모든 요소의 합

    • idx :=idx + 1

  • 총 반환

예제(파이썬)

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

def solve(nums):
   total=0
   idx=0
   l=[i for i in range(len(nums)+1) if i%2!=0]

   while(idx<len(l)):
      k=l[idx]
      for i in range(len(nums)):
         if i+k < len(nums)+1:
            total+=sum(nums[i:i+k])
      idx+=1
   return total

nums = [3,8,2,5,7]
print(solve(nums))

입력

[3,8,2,5,7]

출력

92