Categories:

Tags:



Problem

A school is trying to take an annual photo of all the students. The students are asked to stand in a single file line in non-decreasing order by height. Let this ordering be represented by the integer array expected where expected[i] is the expected height of the ith student in line.

You are given an integer array heights representing the current order that the students are standing in. Each heights[i] is the height of the ith student in line (0-indexed).

Return the number of indices where heights[i] != expected[i].

Constraints

  • 1 <= heights.length <= 100
  • 1 <= heights[i] <= 100

Solution

The problem Height Checker can be solved by sorting given heights and counting the number of elements that have changed.

Implementation

static const int fast_io = []()
{
    std::ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    return 0;
}();

class Solution
{
  public:
    int heightChecker(vector<int> &heights)
    {
        vector<int> expected = heights;
        sort(expected.begin(), expected.end());

        int count = 0;
        for (int i = 0; i < heights.size(); i++)
            if (heights[i] != expected[i])
                count += 1;

        return count;
    }
};