Welcome to Subscribe On Youtube

1051. Height Checker

Description

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.

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.

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.

 

Constraints:

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

Solutions

  • 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;
        }
    }
    
  • class Solution {
    public:
        int heightChecker(vector<int>& heights) {
            vector<int> expected = heights;
            sort(expected.begin(), expected.end());
            int ans = 0;
            for (int i = 0; i < heights.size(); ++i) ans += heights[i] != expected[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))
    
    
  • 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
    }
    
  • function heightChecker(heights: number[]): number {
        const expected = [...heights].sort((a, b) => a - b);
        return heights.reduce((acc, cur, i) => acc + (cur !== expected[i] ? 1 : 0), 0);
    }
    
    

All Problems

All Solutions