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

โปรแกรมนับองค์ประกอบที่มีองค์ประกอบถัดไปในอาร์เรย์ใน Python


สมมติว่าเรามีรายการตัวเลขที่บอกว่า nums เราต้องหาจำนวนองค์ประกอบ x ในอาร์เรย์ เพื่อให้ x + 1 มีอยู่ในอาร์เรย์

ดังนั้น หากอินพุตมีค่าเท่ากับ nums =[4, 2, 3, 3, 7, 9] เอาต์พุตจะเป็น 3 เนื่องจากมี 2+1 =3 จึงมี 3+1 =4 และอีก 3 คือ ปัจจุบันทั้งหมด 3.

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

  • ตอบ :=0

  • c :=รายการที่มีความถี่ของแต่ละองค์ประกอบที่มีอยู่ใน nums

  • dlist :=รายการจากรายการคีย์ทั้งหมดของ c

  • สำหรับแต่ละ i ใน dlist ทำ

    • ถ้า c[i + 1]> 0 แล้ว

      • ตอบ :=ตอบ + c[i]

  • ส่งคืนคำตอบ

ตัวอย่าง

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

from collections import Counter
def solve(nums):
   answer = 0
   c = Counter(nums)
   dlist = list(c.keys())
   for i in dlist:
      if c[i + 1] > 0:
         answer += c[i]

   return answer

nums = [4, 2, 3, 3, 7, 9]
print(solve(nums))

อินพุต

[4, 2, 3, 3, 7, 9]

ผลลัพธ์

3