값 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