diff options
Diffstat (limited to 'works')
| -rw-r--r-- | works/solutions/cpp/1051.cpp | 33 | 
1 files changed, 33 insertions, 0 deletions
diff --git a/works/solutions/cpp/1051.cpp b/works/solutions/cpp/1051.cpp new file mode 100644 index 0000000..e55d877 --- /dev/null +++ b/works/solutions/cpp/1051.cpp @@ -0,0 +1,33 @@ +#include <vector> + +using std::vector; + +class Solution +{ +public: +    int heightChecker(vector<int> &heights) +    { +        vector<int> height_counter(101); +        for (int height : heights) +        { +            height_counter[height]++; +        } + +        auto iter = heights.cbegin(); + +        int result = 0; + +        for (int height = 1; height <= 100; height++) +        { +            int height_count = height_counter[height]; +            while (height_count > 0) +            { +                if (*iter++ != height) +                    result++; +                --height_count; +            } +        } + +        return result; +    } +};
\ No newline at end of file  | 
