สมมุติว่าต้องจัดชุดนักเรียนตามลำดับความสูงเพื่อถ่ายภาพโดยไม่ลดละ ถ้าเรามีนักเรียนจำนวนมาก เราต้องคืนจำนวนนักเรียนขั้นต่ำที่ไม่อยู่ในตำแหน่งที่ถูกต้อง ดังนั้นหากอาร์เรย์เป็นแบบ [1, 1, 4, 2, 1, 3] ผลลัพธ์จะเป็น 3 ดังนั้นนักเรียนที่มีความสูง 4, 3 และ 1 คนสุดท้ายจะไม่ยืนอยู่ในตำแหน่งที่ถูกต้อง
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- คำตอบ :=0
- ให้ x :=อาร์เรย์ในรูปแบบการเรียงลำดับ
- เลย์ y :=อาร์เรย์
- สำหรับ i :=0 ถึงขนาดของ Array – 1 −
- ถ้า x[i] ไม่เหมือนกับ y[i] ให้เพิ่มคำตอบ 1
- ส่งคืนคำตอบ
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
class Solution(object): def heightChecker(self, heights): ans = 0 x = sorted(heights) y = heights for i in range(len(x)): if x[i]!=y[i]: ans+=1 return ans ob1 = Solution() print(ob1.heightChecker([1,2,4,2,1,3]))
อินพุต
[1,1,4,2,1,3]
ผลลัพธ์
4