※ 引述 《sustainer123 (caster)》 之铭言:
:
: https://leetcode.com/problems/height-checker
:
: 1051. Height Checker
:
: 给定一数列heights 我们期待heights是一非递减数列
:
: 此理想数列设为expected
:
: 请回传heights[i] != expected[i]的数量
:
:
: Example 1:
:
: 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]
: 推 DJYOSHITAKA: bucket吧 但我好懒 06/10 09:57
bucket的思路:
塞进去之后
从最小的数到最大的
同时看原本的阵列里面有哪里不一样
class Solution {
public:
int heightChecker(vector<int>& heights)
{
int len = heights.size();
vector<int> paper(101,0);
for(int k : heights)
{
paper[k]++;
}
int ans = 0;
int p = 0;
for(int i = 0 ; i < 101 ; i ++)
{
for(int j = 0 ; j < paper[i] ; j ++)
{
if(heights[p] != i)ans ++;
p++;
}
}
return ans;
}
};