DEV Community

Cover image for 1051. Height Checker
MD ARIFUL HAQUE
MD ARIFUL HAQUE

Posted on

1051. Height Checker

1051. Height Checker

Easy

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].

Example 1:

  • Input: heights = [1,1,4,2,1,3]
  • Output: 3
  • Explanation:
  heights:  [1,1,4,2,1,3]
  expected: [1,1,1,2,3,4]
  Indices 2, 4, and 5 do not match.
Enter fullscreen mode Exit fullscreen mode

Example 2:

  • Input: heights = [5,1,2,3,4]
  • Output: 5
  • Explanation:
  heights:  [5,1,2,3,4]
  expected: [1,2,3,4,5]
  All indices do not match.
Enter fullscreen mode Exit fullscreen mode

Example 3:

  • Input: heights = [1,2,3,4,5]
  • Output: 0
  • Explanation:
  heights:  [1,2,3,4,5]
  expected: [1,2,3,4,5]
  All indices match.
Enter fullscreen mode Exit fullscreen mode

Constraints:

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

Solution:

class Solution {

    /**
     * @param Integer[] $heights
     * @return Integer
     */
    function heightChecker($heights) {
        $ans = 0;
        $currentHeight = 1;
        $count = array_fill(0, 101, 0);

        foreach ($heights as $height) {
            $count[$height]++;
        }

        foreach ($heights as $height) {
            while ($count[$currentHeight] == 0) {
                $currentHeight++;
            }
            if ($height != $currentHeight) {
                $ans++;
            }
            $count[$currentHeight]--;
        }

        return $ans;
    }
}
Enter fullscreen mode Exit fullscreen mode

Contact Links

Top comments (0)