-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathheightChecker.py
28 lines (23 loc) · 1011 Bytes
/
heightChecker.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
"""
Students are asked to stand in non-decreasing order of heights for an annual photo.
Return the minimum number of students that must move in order for all students to be standing in non-decreasing order of height.
Notice that when a group of students is selected they can reorder in any possible way between themselves and the non selected students remain on their seats.
Input: heights = [1,1,4,2,1,3]
Output: 3
Explanation:
Current array : [1,1,4,2,1,3]
Target array : [1,1,1,2,3,4]
On index 2 (0-based) we have 4 vs 1 so we have to move this student.
On index 4 (0-based) we have 1 vs 3 so we have to move this student.
On index 5 (0-based) we have 3 vs 4 so we have to move this student.
"""
class Solution:
def heightChecker(self, heights: List[int]) -> int:
sortedh = sorted(heights)
count = 0
for i in range(len(heights)):
if sortedh[i] != heights[i]:
count += 1
return count
# Time Complexity = O(nlogn)
# Space Complexity = O(n)