> Java > java지도 시간 > Leetcode 정렬 색상

Leetcode 정렬 색상

Linda Hamilton
풀어 주다: 2025-01-11 18:03:43
원래의
147명이 탐색했습니다.

Leetcode  Sort Colors

직관

기본적인 직관은 정렬에서 나옵니다.

접근하다

순진한 접근 방식에서는 내장된 정렬 기능을 사용하여 배열을 정렬할 수 있습니다. 시간 복잡도는 O(N*log(N))입니다.

  • 최적화: 세 개의 숫자만 정렬하므로 계산 정렬의 개념을 사용할 수 있습니다. 배열에서 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
Leetcode 프로필: Leetcode: devn007

위 내용은 Leetcode 정렬 색상의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿