LeetCode--色分類

Q:、赤、白、青、合計n個の配列の要素、in situでそれらをソートし、同じ色を持つように、隣接する要素を考慮すると、赤、白、青の順でソート。
この質問、私たちは、赤、白と青を表す整数0、1を使用し、2。
[例]
入力:[2、0、2、1、1、0]
出力:[0、0、1、1、2、2]
[注]
この問題を解決するために、ソート機能コードベースを使用することはできません。
A:
本明細書において使用されるカウントシング。見ることができます:https://www.cnblogs.com/bqwzx/p/11029264.html
、キー0,1,2それぞれ、マップを提供するレコードの数、および実装のint []により、ここでの出力(の数によって、Iマップあまりにも多くの問題を見つける......)

    public static void sortColors(int[] num) {
        int[] color = new int[3];
        if (num == null || num.length == 0)
            return;
        for (int i = 0; i < num.length; i++) {
            color[num[i]]++;
        }
        for (int i = 0; i < num.length; ) {
            for (int j = 0; j < 3; j++) {
                while (color[j]-- != 0) {
                    num[i++] = j;
                }
            }
        }
    }

おすすめ

転載: www.cnblogs.com/xym4869/p/12543047.html