Welcome to Subscribe On Youtube
Formatted question description: https://leetcode.ca/all/1051.html
1051. Height Checker (Easy)
Students are asked to stand in nondecreasing 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 nondecreasing 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.
Example 1:
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 (0based) we have 4 vs 1 so we have to move this student. On index 4 (0based) we have 1 vs 3 so we have to move this student. On index 5 (0based) we have 3 vs 4 so we have to move this student.
Example 2:
Input: heights = [5,1,2,3,4] Output: 5
Example 3:
Input: heights = [1,2,3,4,5] Output: 0
Constraints:
1 <= heights.length <= 100
1 <= heights[i] <= 100
Related Topics:
Array
Solution 1.

class Solution { public int heightChecker(int[] heights) { int length = heights.length; int[] sorted = new int[length]; System.arraycopy(heights, 0, sorted, 0, length); Arrays.sort(sorted); int count = 0; for (int i = 0; i < length; i++) { if (heights[i] != sorted[i]) count++; } return count; } } ############ class Solution { public int heightChecker(int[] heights) { int[] expected = heights.clone(); Arrays.sort(expected); int ans = 0; for (int i = 0; i < heights.length; ++i) { if (heights[i] != expected[i]) { ++ans; } } return ans; } }

// OJ: https://leetcode.com/problems/heightchecker/ // Time: O(NlogN) // Space: O(N) class Solution { public: int heightChecker(vector<int>& A) { auto B = A; sort(begin(B), end(B)); int ans = 0; for (int i = 0; i < A.size(); ++i) ans += A[i] != B[i]; return ans; } };

class Solution: def heightChecker(self, heights: List[int]) > int: expected = sorted(heights) return sum(a != b for a, b in zip(heights, expected)) ############ class Solution(object): def heightChecker(self, heights): """ :type heights: List[int] :rtype: int """ return sum(a != b for a, b in zip(sorted(heights), heights))

func heightChecker(heights []int) int { expected := make([]int, len(heights)) copy(expected, heights) sort.Ints(expected) ans := 0 for i, v := range heights { if v != expected[i] { ans++ } } return ans }