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

Python에서 정렬된 순서로 제곱 요소 목록을 찾는 프로그램

<시간/>

요소가 오름차순으로 정렬된 nums라는 숫자 목록이 있다고 가정하고 요소를 제곱하고 정렬된 순서로 결과를 반환해야 합니다.

따라서 입력이 nums =[-8, -3, 0, 5, 6]과 같으면 출력은 [0, 9, 25, 36, 64]

가 됩니다.

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

  • n :=숫자 크기
  • l :=0
  • r :=n - 1
  • 색인:=n - 1
  • res :=숫자와 같은 크기의 목록으로 0으로 채움
  • 인덱스>=0, do
    • 만약 |숫자[l]|> |숫자[r]|,
      • res[인덱스] :=nums[l] * nums[l]
      • l :=l + 1
    • 그렇지 않으면
      • res[인덱스] :=nums[r] * nums[r]
      • r :=r - 1
    • 인덱스 :=인덱스 - 1
  • 반환 결과

예시

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

def solve(nums):
   n = len(nums)
   l = 0
   r = n - 1
   index = n - 1
   res = [0 for i in range(len(nums))]
   while index >= 0:
      if abs(nums[l]) > abs(nums[r]):
         res[index] = nums[l] * nums[l]
         l += 1
      else:
         res[index] = nums[r] * nums[r]
         r -= 1
      index -= 1

   return res

nums = [-8, -3, 0, 5, 6]
print(solve(nums))

입력

[-8, -3, 0, 5, 6]

출력

[0, 9, 25, 36, 64]