LeetCode Problem - Link
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].
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.
Simple Loop Solution
/** * @param {number[]} heights * @return {number} */ var heightChecker = function (heights) { // making a copy let unsorted_heights = heights.map(a => a) // sort the array heights.sort((a, b) => { return a - b }) // counter to track and return let count = 0; for (var i = 0; i < heights.length; i++) { if (unsorted_heights[i] != heights[i]) { count += 1 } } return count; };