ホームページ > Java > &#&チュートリアル > Leetcode ソートカラー

Leetcode ソートカラー

Linda Hamilton
リリース: 2025-01-11 18:03:43
オリジナル
148 人が閲覧しました

Leetcode  Sort Colors

直感

基本的な直感は並べ替えから生まれます。

アプローチ

単純なアプローチでは、組み込みのソート関数を使用して配列をソートできます。時間計算量は O(N*log(N)) になります。

  • 最適化: 3 つの数値のみをソートしているため、カウントソートの概念を使用できます。配列内の 0 の数と 1 の数を追跡します。 # 複雑さ
  • 時間計算量: O(N)

  • 空間複雑さ: O(1)

コード

class Solution {
    public void sortColors(int[] nums) {
        int countZero = 0;
        int countOne  =  0;
        for(int num: nums){
            switch(num){
                case 0:
                    countZero++;
                    break;
                case 1:
                    countOne++;
            }
        }
        int currentIndex = -1;
        while(0<countZero--){
            nums[++currentIndex] = 0;
            // countZero--;
        }
        while(0<countOne--){
            nums[++currentIndex] = 1;
            // countOne--;
        }
        while(currentIndex<nums.length-1){
            nums[++currentIndex] = 2;
        }
    }
}
ログイン後にコピー

その他のソリューションの GitHub リポジトリ: Git
リートコード プロフィール: リートコード: devn007

以上がLeetcode ソートカラーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート