# Height Checker

## [Height Checker](https://leetcode.com/problems/height-checker)

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.

**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 (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.
```

**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`

## Solutions

### 🧠 Cpp

```cpp
#define all(x) (x).begin(), (x).end()
class Solution
{
public:
    int heightChecker(vector<int>& heights)
    {
        //O(N logN) solution (sorting)
        vector<int> sorted_h = heights;
        std::sort(all(sorted_h));

        unsigned counter = 0;
        for(int i = 0; i < heights.size(); ++i)
            if(heights[i] != sorted_h[i])
                ++counter;    

        return counter;
    }
};
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://anton-veselskyi.gitbook.io/codding-problems-solutions/leetcode/easy/height-checker.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
