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

Python을 사용하여 배열을 동일하게 만드는 최소 연산을 찾는 프로그램

<시간/>

값 n이 있다고 가정하고 모든 i에 대해 arr[i] =(2*i)+1인 n개의 요소가 있는 배열 nums를 고려합니다. 이제 한 번의 작업으로 0 <=x, y

따라서 입력이 n =4와 같으면 n 배열이 [1,3,5,7]이므로 출력은 4가 됩니다. 이제 첫 번째 작업 후에 [2,3,5,6]과 같은 배열을 만들 수 있습니다. ], 두 번째 작업 후에 [3,3,5,5]를 만들고 세 번째 작업 후에 [4,3,4,5]를 만들고 마지막으로 [4,4,4,4]를 만들 수 있습니다. 이제 모든 것이 평등합니다.

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

  • 답변:=0

  • n이 1과 같으면

    • 반환

  • q:=(n/2)의 몫 -1

  • j:=1

  • q>=0인 동안 수행

    • ans:=ans + (n-j)

    • q :=q - 1

    • j :=j + 2

  • 반환

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

def solve(n):
   ans=0
   if n==1:
      return ans
   q=(n//2)-1
   j=1
   while q>=0:
      ans=ans+(n-j)
      q-=1
      j+=2
   return ans
n = 4
print(solve(n))

입력

4

출력

4