學校在拍年度紀念照時,一般要求學生按照 非遞減 的高度順序排列。
請你返回至少有多少個學生沒有站在正確位置數量。該人數指的是:能讓所有學生以 非遞減 高度排列的必要移動人數。
示例: 輸入:[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; } };