Computer >> Máy Tính >  >> Lập trình >> Python

Tìm một phần tử trong một mảng sao cho các phần tử tạo thành một chuỗi giảm dần và tăng dần trong Python

Giả sử chúng ta có một mảng các số dương; trước tiên chúng ta phải kiểm tra một điểm / mục mà mục nào tạo ra một chuỗi giảm dần, sau đó là một chuỗi các số nguyên tăng dần. Đây là những thuộc tính sau:Chúng ta phải ghi nhớ rằng các trình tự phải có độ dài tối thiểu là 2

Ngoài ra, chúng tôi đã lưu ý rằng giá trị cuối cùng của chuỗi giảm dần là giá trị đầu tiên của chuỗi tăng.

Vì vậy, nếu đầu vào giống như {5, 4, 3, 4}, thì đầu ra sẽ là 3, vì {5, 4, 3} đang giảm dần thì {3, 4} đang tăng lên.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • tăng:=1, giảm:=1
  • n:=kích thước của mảng
  • đối với tôi trong phạm vi từ 1 đến n, thực hiện
    • if array [i]
    • nếu mức tăng giống như 1, thì
      • giảm:=giảm + 1
    • nếu không,
      • trả về -1
  • ngược lại khi array [i]> array [i-1] khác 0 thì
    • nếu mức tăng giống như 1, thì
      • pt:=array [i-1]
    • nếu giảm> =2, thì
      • tăng:=tăng + 1
    • nếu không,
      • trả về -1
  • ngược lại khi mảng [i] giống với mảng [i-1] thì
    • trả về -1
  • nếu tăng> =2 và giảm> =2, thì
    • trả về pt
  • nếu không,
    • trả về -1
  • Ví dụ

    Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

    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)

    Đầu vào

    [5,4,3,4]

    Đầu ra

    3