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

Kiểm tra xem các phần tử mảng có liên tiếp trong Python hay không

Giả sử chúng ta có một mảng số được gọi là nums. Chúng tôi phải kiểm tra xem nó có chứa các giá trị liền kề hay không.

Vì vậy, nếu đầu vào là nums =[6, 8, 3, 5, 4, 7], thì đầu ra sẽ đúng vì các phần tử là 3, 4, 5, 6, 7, 8.

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

  • nếu kích thước của nums <1, thì
    • trả về Sai
  • min_val:=tối thiểu nums, max_val:=tối đa nums
  • nếu (max_val - min_val + 1) bằng với kích thước của nums, thì
    • đối với tôi trong phạm vi từ 0 đến kích thước của nums, hãy thực hiện
      • nếu nums [i] <0, thì
        • j:=-nums [i] - min_val
      • nếu không,
        • j:=nums [i] - min_val
      • nếu nums [j]> 0, thì
        • nums [j]:=-nums [j]
      • nếu không,
        • trả về Sai
    • trả về True
  • trả về Sai

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

Ví dụ

def solve(nums):
   if len(nums) < 1:
      return False
   min_val = min(nums)
   max_val = max(nums)
   if max_val - min_val + 1 == len(nums):
      for i in range(len(nums)):
         if nums[i] < 0:
            j = -nums[i] - min_val
         else:
            j = nums[i] - min_val
            if nums[j] > 0:
               nums[j] = -nums[j]
            else:
               return False
      return True
   return False
nums = [6, 8, 3, 5, 4, 7]
print(solve(nums))

Đầu vào

[6, 8, 3, 5, 4, 7]

Đầu ra

True