Height Checker

一脸懵逼的看完题, 按题意写就是o(n) space o(n) time.

class Solution {
    public int heightChecker(int[] heights) {
        int[] t = heights.clone();
        Arrays.sort(t);
        int count = 0;
        for(int i = 0 ; i < heights.length; i++) {
            if(heights[i] != t[i])
                count++;
        }
        return count;
    }
}

想了一会儿,感觉不知道怎么优化,如果这个能优化,那么就需要知道每个元素的rank,如果rank()这个函数好像需要用一个元素比较所有元素才能知道结果,毕竟非排序数组,不比较所有元素怎么知道那个比那个大,排序也是rank的一种,这也是排序nlgn的速度下限的一种证明吧