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

Python에서 배열이 아름다운지 확인

<시간/>

고유한 요소의 배열 번호가 있다고 가정합니다. 다음 조건을 충족하는지 여부를 확인해야 합니다.

  1. 요소의 범위는 1에서 n입니다.
  2. 배열을 오름차순으로 정렬하면 안 됩니다.

따라서 입력이 nums =[2,6,1,5,3,4]와 같으면 출력은 True가 됩니다.

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

  • n :=숫자 크기
  • 총계 :=nums[0]
  • is_sorted :=참
  • 1 ~ n - 1 범위의 i에 대해
    • nums[i]가 nums[i - 1]과 같으면
      • 거짓을 반환
    • 숫자[i] <숫자[i - 1]이면
      • is_sorted :=거짓
    • 총계 :=총계 + 숫자[i]
  • is_sorted가 참이면
    • 거짓을 반환
  • 총계가 처음 n개의 숫자의 합과 같으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

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

예시 코드

def solve(nums):
   n = len(nums)
   
   total = nums[0]
   is_sorted = True
   
   for i in range(1,n):
      if nums[i] == nums[i - 1]:
         return False
  
      if nums[i] < nums[i - 1]:
         is_sorted = False
      total += nums[i]
   
   if is_sorted:
      return False
  
   return total == (n * (n + 1) // 2)
 
nums = [2,6,1,5,3,4]
print(solve(nums))

입력

[2,6,1,5,3,4]

출력

True