La matriz está ordenada. Es una pregunta directa, es reordenar la matriz en orden ascendente. Aquí he implementado clasificación rápida. Ejemplo,
Ejemplo 1:
Entrada: nums = [5,2,3,1] Salida: [1,2,3,5]Ejemplo 2:
Entrada: nums = [5,1,1,2,0,0] Salida: [0,0,1,1,2,5]
ordenación rápida
Tiempo O (nlogn)
Espacio O (1)
implementación de Java
1 clase Solution { 2 público int [] sortArray ( int [] nums) { 3 QuickSort (nums, 0, nums.length - 1 ); 4 int [] res = nuevo int [nums.length]; 5 para ( int i = 0; i <nums.length; i ++ ) { 6 res [i] = nums [i]; 7 } 8 de retorno res; 9 } 10 11 públicas estáticas de vacío ordenación rápida ( int nums [], intizquierda, int derecha) { 12 si (a la izquierda> = derecha) { 13 de retorno ; 14 } 15 int mediados = partición (nums, izquierda, derecha); 16 ordenación rápida (nums, izquierda, media); 17 QuickSort (nums, mid + 1 , a la derecha); 18 } 19 20 pública estática void swap ( int [] nums, int izquierda, int derecha) { 21 int temp = nums [Izquierda]; 22 nums [left] =nums [right]; 23 nums [right] = temp; 24 } 25 26 pública estática int partición ( int [] nums, int izquierda, int derecha) { 27 int pivote = nums [Izquierda]; 28 , mientras que (izquierda < derecha) { 29 mientras (izquierda <derecha && nums [derecha]> = pivote) { 30 derecha- ; 31 } 32 swap (nums, izquierda, derecha); 33 mientras (izquierda <derecha && nums [izquierdo] <=pivote) { 34 queda ++ ; 35 } 36 swap (nums, derecha, izquierda); 37 } 38 nums [izquierdo] = pivote; 39 de retorno dejó; 40 } 41 }
implementación de JavaScript, a la espera