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

파이썬에서 각 요소를 왼쪽에서 가장 작은 항으로 바꾸는 프로그램

<시간/>

nums라는 숫자 목록이 있다고 가정하고 모든 nums[i]를 i의 왼쪽에 있는 가장 작은 요소로 바꿔야 합니다. nums[0]을 0으로 바꿔야 합니다.

따라서 입력이 [15, 7, 9, 16, 12, 25]와 같으면 출력은 [0, 15, 7, 7, 7, 7]

이 됩니다.

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

  • nums가 비어 있으면
    • 새 목록 반환
  • j:=숫자[0]
  • 숫자[0]:=0
  • 범위 1에서 숫자 - 1까지의 i에 대해
    • k:=숫자[i]
    • 숫자[i]:=j
    • j:=j, k의 최소값
  • 반환 번호

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

class Solution:
   def solve(self, nums):
      if not nums:
         return []
         j=nums[0]
         nums[0]=0
         for i in range(1,len(nums)):
            k=nums[i]
            nums[i]=j
            j=min(j,k)
         return nums
ob = Solution()
nums = [15, 7, 9, 16, 12, 25]
print(ob.solve(nums))

입력

[15, 7, 9, 16, 12, 25]

출력

[0, 15, 7, 7, 7, 7]