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

ตรวจสอบว่าอาร์เรย์นั้นสวยงามใน Python . หรือไม่


สมมติว่าเรามีจำนวนอาร์เรย์ขององค์ประกอบเฉพาะ เราต้องตรวจสอบว่าเงื่อนไขเหล่านี้เป็นไปตามหรือไม่:

  1. องค์ประกอบจะอยู่ในช่วง 1 ถึง n.
  2. ต้องไม่เรียงลำดับอาร์เรย์จากน้อยไปมาก

ดังนั้น หากอินพุตมีค่าเท่ากับ nums =[2,6,1,5,3,4] ผลลัพธ์จะเป็น True

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

  • n :=ขนาดของ nums
  • รวม :=nums[0]
  • is_sorted :=จริง
  • สำหรับฉันในช่วง 1 ถึง n - 1 ทำ
    • ถ้า nums[i] เหมือนกับ nums[i - 1] แล้ว
      • คืนค่าเท็จ
    • ถ้า nums[i]
    • is_sorted :=เท็จ
  • ผลรวม :=รวม + จำนวน[i]
  • ถ้า is_sorted เป็นจริง
    • คืนค่าเท็จ
  • คืนค่าจริงเมื่อผลรวมเท่ากับผลรวมของตัวเลข n ตัวแรก มิฉะนั้นเป็นเท็จ
  • ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

    โค้ดตัวอย่าง

    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