สมมุติว่าเรามีอาร์เรย์ เราต้องตรวจสอบว่าแต่ละองค์ประกอบมีจำนวนการเกิดขึ้นไม่ซ้ำกันหรือไม่ หากไม่มีองค์ประกอบดังกล่าว ให้คืนค่าเท็จ มิฉะนั้น เป็นจริง ดังนั้นหากอาร์เรย์เป็นเหมือน [1, 1, 2, 2, 2, 3, 4, 4, 4, 4] ก็จะคืนค่าเป็นจริงเมื่อองค์ประกอบ 1 มีอยู่สองครั้ง 2 มีสามครั้ง 3 คือ ปัจจุบันหนึ่งครั้งและ 4 มีอยู่สี่ครั้ง
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- เราจะหาความถี่ขององค์ประกอบของอาร์เรย์
- สำหรับคู่คีย์-ค่าแต่ละคู่ในแผนที่ความถี่
- หากมีค่าอยู่ใน mp อื่นของแผนที่ ให้คืนค่าเท็จ
- ใส่ mp[value] :=1
- คืนค่าจริง
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
class Solution(object): def uniqueOccurrences(self, arr): d = {} for i in arr: if i not in d: d[i] =1 else: d[i]+=1 l = {} for x, y in d.items(): if y in l: return False l[y] = 1 return True ob1 = Solution() print(ob1.uniqueOccurrences([1,1,2,2,2,3,4,4,4,4]))
อินพุต
[1,1,2,2,2,3,4,4,4,4]
ผลลัพธ์
true