Rumah > Java > javaTutorial > Warna Isih Leetcode

Warna Isih Leetcode

Linda Hamilton
Lepaskan: 2025-01-11 18:03:43
asal
147 orang telah melayarinya

Leetcode  Sort Colors

Intuisi

Gerakan asas datang daripada pengisihan.

Pendekatan

Dalam pendekatan naif, kita boleh mengisih tatasusunan menggunakan fungsi pengisihan terbina. Kerumitan masa ialah O(N*log(N)).

  • Optimumkan: Memandangkan kita hanya mengisih tiga nombor, kita boleh menggunakan konsep pengisihan mengira. Jejaki bilangan sifar dan bilangan satu dalam tatasusunan. # Kerumitan
  • Kerumitan masa: O(N)

  • Kerumitan ruang: O(1)

Kod

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;
        }
    }
}
Salin selepas log masuk

Repo GitHub untuk lebih banyak penyelesaian: Git
Profil Leetcode: Leetcode: devn007

Atas ialah kandungan terperinci Warna Isih Leetcode. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan