제목 : 어레이의 N 원소 빨간색, 흰색과 청색, 총 주어 원위치대로 정렬 같은 인접한 동일한 색 요소 즉 적색, 백색, 청색의 순서로 배열. 이 질문에, 우리는 빨간색, 흰색과 파란색 대표 0, 1, 2의 정수를 사용합니다. 참고 :이 문제를 해결하기 위해 정렬 기능 코드베이스를 사용할 수 없습니다.
아이디어를 문제 해결 :이 질문은 다시 통과 할 수 0.2를 기록했다 차례로 할당 재활용 할 수있다. 그러나, 주제 알고리즘은 우주 상수를 통해 하나의 패스를 필요로한다. 나는 또한 그것을 다시 스캔 할 것이다. . .
classSolution{publicvoidsortColors(int[] nums){int len = nums.length;int R = len-1;int L =0;int p = nums[0];int k =0;for(int i=0;i<len;i++){if(p==0){
nums[L++]=0;
k++;if(k<=len-1) p = nums[k];}elseif(p==2){
p = nums[R];if(R>=0) nums[R--]=2;}elseif(p==1){if(k<len-1) p = nums[++k];}}for(int i=L;i<=R;i++){
nums[i]=1;}}}
문제 해결 연습 : 공식 접근법 나에게 거의하지만, 현재 위치이고 또는 오른쪽 페어 교환의 왼쪽, 그리고 내 왼쪽 또는 오른쪽으로 현재 위치가 될 것이었다.