สมมติว่าเรามีรายการตัวเลขที่บอกว่า 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