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

요소가 Python에서 엄격하게 감소 및 증가 시퀀스를 형성하도록 배열에서 요소 찾기

<시간/>

양수 배열이 있다고 가정합니다. 항목이 먼저 엄격하게 감소하는 시퀀스를 생성한 다음 엄격하게 증가하는 정수 시퀀스를 생성하는 포인트/아이템을 확인해야 합니다. 이것들은 다음과 같은 속성입니다:시퀀스의 길이가 최소 2여야 한다는 것을 명심해야 합니다.

또한 감소 시퀀스의 마지막 값이 증가 시퀀스의 첫 번째 값이 되도록 주의했습니다.

따라서 입력이 {5, 4, 3, 4}와 같으면 {5, 4, 3}은 엄격하게 감소하고 {3, 4}는 엄격하게 증가하므로 출력은 3이 됩니다.

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

  • 증가:=1, 감소:=1
  • n :=배열의 크기
  • 1~n 범위의 i에 대해
    • 배열[i] <배열[i-1]이면
      • 증가가 1과 같으면
        • 감소 :=감소 + 1
      • 그렇지 않으면
        • 반환 -1
    • 그렇지 않으면 array[i]> array[i-1]이 0이 아닌 경우
      • 증가가 1과 같으면
        • pt :=배열[i-1]
      • 감소>=2이면
        • 증가 :=증가 + 1
      • 그렇지 않으면
        • 반환 -1
    • 그렇지 않으면 array[i]가 array[i-1]과 같을 때
      • 반환 -1
  • 증가>=2 및 감소>=2이면
    • 반환 포인트
  • 그렇지 않으면
    • 반환 -1

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

def search_element(array):
   increase = 1
   decrease = 1
   n = len(array)
   for i in range(1, n):
      if(array[i] < array[i-1]):
         if increase == 1:
            decrease = decrease + 1
         else:
            return -1
      elif(array[i] > array[i-1]):
         if increase == 1:
            pt = array[i-1]
         if decrease >= 2:
            increase = increase + 1
         else:
            return -1
      elif(array[i] == array[i-1]):
         return -1
   if(increase >= 2 and decrease >= 2):
      return pt
   else:
      return -1
array = [5,4,3,4]
element = search_element(array)
print(element)

입력

[5,4,3,4]

출력

3