1051. 高度检查器『简单』

题目来源于力扣(LeetCode

一、题目

1051. 高度检查器

题目相关标签:数组

提示:

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

二、解题思路

  1. 分析题意得到:结果即 heights 数组排序前与排序后不相同元素的个数

  2. 因数组的引用类型,所以通过 Arrays.copy 方法来对 heights 数组进行复制的操作

  3. 对排序后的复制数组进行遍历,并与 heights 数组元素进行比较

  4. 不同的元素个数即是返回的结果

三、代码实现

public static int heightChecker(int[] heights) {
    int ans = 0;
    // 复制数组
    int[] arr = Arrays.copyOf(heights, heights.length);
    // 升序排列
    Arrays.sort(arr);

    for (int i = 0; i < arr.length; i++) {
        // 记录两个数组中的不同项
        if (arr[i] != heights[i]) {
            ans += 1;
        }
    }
    return ans;
}

四、执行用时

五、部分测试用例

public static void main(String[] args) {
    int[] heights = {1, 1, 4, 2, 1, 3};  // output:3
//    int[] heights = {5, 1, 2, 3, 4};  // output:5
//    int[] heights = {1, 2, 3, 4, 5};  // output:0

    int result = heightChecker(heights);
    System.out.println(result);
}
posted @ 2020-06-08 21:20  知音12138  阅读(164)  评论(0编辑  收藏  举报