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

Kiểm tra xem mảng có đẹp bằng Python không

Giả sử chúng ta có một số mảng gồm các phần tử duy nhất. Chúng tôi phải kiểm tra xem các điều kiện này có thỏa mãn hay không:

  1. Các phần tử sẽ nằm trong phạm vi từ 1 đến n.
  2. Mảng không được sắp xếp theo thứ tự tăng dần.

Vì vậy, nếu đầu vào giống như nums =[2,6,1,5,3,4], thì đầu ra sẽ là True.

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

  • n:=kích thước của nums
  • tổng số:=nums [0]
  • is_sorted:=True
  • đối với tôi trong phạm vi từ 1 đến n - 1, thực hiện
    • nếu nums [i] giống nums [i - 1], thì
      • trả về Sai
    • nếu nums [i]
    • is_sorted:=False
  • tổng số:=total + nums [i]
  • nếu is_sorted là true, thì
    • trả về Sai
  • trả về true khi tổng bằng tổng của n số đầu tiên, ngược lại là false
  • Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

    Mã mẫu

    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))

    Đầu vào

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

    Đầu ra

    True