Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ค้นหาองค์ประกอบในอาร์เรย์เพื่อให้องค์ประกอบมีลำดับการลดลงและเพิ่มขึ้นอย่างเคร่งครัดในPython


สมมติว่าเรามีอาร์เรย์ของจำนวนบวก เราต้องตรวจสอบจุด/รายการว่ารายการใดสร้างลำดับการลดลงอย่างเข้มงวดก่อน ตามด้วยลำดับของจำนวนเต็มที่เพิ่มขึ้นอย่างเคร่งครัด นี่คือคุณสมบัติดังต่อไปนี้:เราต้องจำไว้ว่าลำดับต้องมีความยาวขั้นต่ำ 2

นอกจากนี้ เรายังดูแลด้วยว่าค่าสุดท้ายของลำดับการลดลงคือค่าแรกของลำดับที่เพิ่มขึ้น

ดังนั้น หากอินพุตเป็น {5, 4, 3, 4} เอาต์พุตจะเป็น 3 เนื่องจาก {5, 4, 3} ลดลงอย่างเคร่งครัด {3, 4} จะเพิ่มขึ้นอย่างเคร่งครัด

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • เพิ่มขึ้น :=1, ลดลง :=1
  • n :=ขนาดของอาร์เรย์
  • สำหรับฉันในช่วง 1 ถึง n ทำ
    • ถ้า array[i]
    • ถ้าการเพิ่มขึ้นเท่ากับ 1 แล้ว
      • ลดลง :=ลด + 1
    • มิฉะนั้น
      • คืน -1
  • มิฉะนั้น เมื่อ array[i]> array[i-1] ไม่ใช่ศูนย์ ดังนั้น
    • ถ้าการเพิ่มขึ้นเท่ากับ 1 แล้ว
      • pt :=array[i-1]
    • ถ้าลดลง>=2 แล้ว
      • เพิ่มขึ้น :=เพิ่มขึ้น + 1
    • มิฉะนั้น
      • คืน -1
  • มิฉะนั้น เมื่อ array[i] เหมือนกับ array[i-1] แล้ว
    • คืน -1
  • ถ้าเพิ่มขึ้น>=2 และลดลง>=2 แล้ว
    • ผลตอบแทน pt
  • มิฉะนั้น
    • คืน -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