1051. Height Checker (身高檢查)

題目

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

一所學校正試圖拍攝所有學生的年度照片。學生被要求按身高遞增的順序單獨排成一行。這種順序由整數陣列 expected 代表,其中 expected[i] 是第 i 名學生在排隊時預期的身高。
你會收到一個整數陣列 heights,代表學生當前的排隊順序。每個 heights[i] 是第 i 名學生的身高(從0開始索引)。
返回 heights[i] != expected[i] 的索引數量。


Example 1

1
2
3
4
5
6
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

1
2
3
4
5
6
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

1
2
3
4
5
6
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

我的解題

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution {
public int heightChecker(int[] heights) {
int[] expected = new int[heights.length];
System.arraycopy(heights, 0, expected, 0, heights.length);
java.util.Arrays.sort(expected);

int count = 0;

for (int i = 0; i < heights.length; i++) {
if (heights[i] != expected[i]) {
count++;
}
}

return count;
}
}