有 n 长度的 char 数组。数组只能包含任何顺序 R、B、W 的元素。您需要对数组进行排序,以便顺序为 R、B、W,即所有 R 将首先出现,然后是 B,然后是 W。
     约束:   时间复杂度为 O(n ) 并且空间复杂度应该是 O(1)。
     假设:您可以假设使用签名 swap(char[] arr, int index1, int index2) 给出了一种交换方法,它在单位时间内交换数字。
     实现方法: public sort(char[]array);
这是我的实现。感谢任何人提供更好的解决方案。如果我有任何错误,任何人都可以自由指出。
 public static void sort(char[] arr){
     int rIndex = 0, wIndex = arr.length -1;
     for (int i = 0 ; i <= wIndex; i ++ ){
         if ( arr[i] == 'R' ){
             swap(arr, i , rIndex ++ );
         } else if (arr[i] == 'W' ){
             swap(arr, i , wIndex -- );
         }else if ( arr[i] == 'B' ){
             swap(arr, i , rIndex );
         }
     }
    }