code.ashish.me

Atom feed

Recently added: 128 Longest Consecutive Sequence, 347 Top K Frequent Elements, 045 Jump Game 2, 228 Summary Ranges, 219 Contains Duplicate 2

1051 Height Checker

/**
 *
 * Ashish Patel
 * e: ashishsushilPatel@gmail.com
 * w: https://ashish.me
 *
 */

/*
 * 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.
 */

function heightChecker(value) {
  let originalHeights = value.slice()
  let sortedHeights = value.sort((a, b) => a - b)
  let result = 0
  for (let i = 0; i < value.length; i++) {
    if (originalHeights[i] !== sortedHeights[i]) {
      result += 1
    }
  }
  return result
}

test('height Checker', () => {
  expect(heightChecker([1, 1, 4, 2, 1, 3])).toEqual(3)
})

Created 2020-05-01T17:45:01+05:30 · Edit