leetcode題解——1051.高度檢查器

學校在拍年度紀念照時,一般要求學生按照 非遞減 的高度順序排列。

請你返回至少有多少個學生沒有站在正確位置數量。該人數指的是:能讓所有學生以 非遞減 高度排列的必要移動人數。


示例:
輸入:[1,1,4,2,1,3]
輸出:3
解釋:
高度爲 4、3 和最後一個 1 的學生,沒有站在正確的位置。


解題思路:

        非遞減,也就是說遞增並且中間可以相等,因此,可以先把正常排序的排列求出來,然後再對比位置



C++

class Solution {
public:
    int heightChecker(vector<int>& heights) {
        int ret = 0;
        vector<int> sort_height = heights;
        // 先找出正常排序
        sort(sort_height.begin(),sort_height.end());
        int len = heights.size();
        for (int i=0; i<len; i++) {
            if (heights[i] != sort_height[i])
                ret++;
        }
        
        return ret;
    }
};


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章