Dada una matriz de enteros, encuentre el entero más grande que se puede concatenar de todos los números en la matriz

Tema Descripción:

Dada una matriz de enteros, encuentre el entero más grande que se puede concatenar de todos los números de la matriz.
Por ejemplo:
entrada: [7,53, 54], salida: 75453;
entrada: [1,321,35,4], salida: 4353213;

Código

Ideas:

  1. Convierte todos los números de la matriz en cadenas y los ordena como un todo según el tamaño de la primera letra.
  2. Si las primeras letras son iguales, whilecompare hacia atrás a través del bucle. Por ejemplo, cuando se comparan 52 y 53, si la primera letra 5 es la misma, compare 2 y 3. Si las longitudes de las dos cadenas que se van a comparar son diferentes Por ejemplo, cuando se comparan 523 y 52, los primeros dos dígitos son iguales y el 3 de 523 se compara con los últimos 2 de 52, la cadena que se cicla primero siempre será Use la última letra para la comparación posterior. y así.
function toInt(arr) {
    
    
	let newArr = arr.sort((a,b) => {
    
    
	  a+='';
		b+='';
		let aLen = a.length, bLen = b.length;
		let aIndex = 0, bIndex = 0;
		while(aIndex<=aLen && bIndex<bLen) {
    
    
			if(arr[aIndex]===arr[bIndex]) {
    
    
				aIndex + 1 < aLen && (aIndex++, flag=true);
				bIndex + 1 < bLen && (bIndex++, flag = true);
			} else {
    
    
				break
			}
			if(flag) break;
		}

		if(arr[aIndex]>arr[bIndex]) {
    
    
			return -1;
		} else {
    
    
			return 1;
		}
	})
	return newArr.join('')
}

Supongo que te gusta

Origin blog.csdn.net/weixin_44761091/article/details/123985575
Recomendado
Clasificación