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

ตรวจสอบว่าองค์ประกอบอาร์เรย์อยู่ติดกันใน Python . หรือไม่


สมมติว่าเรามีอาร์เรย์ของตัวเลขที่เรียกว่า nums เราต้องตรวจสอบว่ามีค่าที่ต่อเนื่องกันหรือไม่

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

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

  • ถ้าขนาดของ nums <1 แล้ว
    • คืนค่าเท็จ
  • min_val :=ต่ำสุดของ nums, max_val :=สูงสุดของ nums
  • ถ้า (max_val - min_val + 1) เท่ากับขนาดของ nums แล้ว
    • สำหรับ i ในช่วง 0 ถึงขนาดของ nums ให้ทำ
      • ถ้า nums[i] <0 แล้ว
        • j:=-nums[i] - min_val
      • มิฉะนั้น
        • j :=nums[i] - min_val
      • ถ้า nums[j]> 0 แล้ว
        • nums[j] :=-nums[j]
      • มิฉะนั้น
        • คืนค่าเท็จ
    • คืนค่า True
  • คืนค่าเท็จ

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

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

อินพุต

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

ผลลัพธ์

True