Saltar al contenido

Sort N Triplets – GeeksforGeeks

Sort N Triplets - GeeksforGeeks

Dada una matriz arr[ ] desde norte El trabajo de los trillizos es organizar los trillizos en orden descendente. Trillizo X tiene mayor prioridad que trío si y solo si todos los elementos del triplete X es mayor o igual que el elemento correspondiente del triplete Y. Para presionar Imposible si no se pueden pedir trillizos.

Ejemplos:

Entrada: arr = {{1, 2, 3}, {1, 3, 4}, {4, 7, 4}}
Producción: {{4, 7, 4}, {1, 3, 4}, {1, 2, 3}}
Explicación:
Como puede verse, todos los elementos correspondientes del triplete C son mayores o iguales que el triplete B y todos los elementos correspondientes del triplete B son mayores o iguales que el triplete A.

Entrada: arr = {{1, 2, 3), {1, 2, 4}, {1, 3, 1}, {10, 20, 30}, {16, 9, 25}}
Producción: Imposible

Acercarse: Este problema se puede resolver con enfoque codicioso. Mantenga todos los trillizos con su ID de triplete en diferentes listas y ordene estas listas de tuplas en orden descendente. Siga los pasos a continuación para resolver el problema.

  • Haz tres listas de tuplas X, y z.
  • Lista x, y, z mantiene trillizos con su identificación de triplete.
  • Ordenar por X, basado en el 1er elemento del triplete.
  • Ordenar por y, basado en el segundo elemento del triplete.
  • Ordenar por z, basado en el 3er elemento del triplete.
  • Iterar por I en el área [0, N-1], busca a todos I, Si X[i][3] = si[i][3] = z[i][3], luego imprima el pedido correspondiente, de lo contrario imprima ‘Imposible’.

A continuación se muestra la implementación del enfoque anterior.

Python3

 

def findOrder(A, x, y, z):

  flag = 1

   

  

  for i in range(len(x)):

    if X[i][3] == sí[i][3] == z[i][3]:

      continue

    else:

      flag = 0

      break

   

  Order = 'Impossible'

  if flag:

    Order = []

    for i, j, k, l in x:

      Order += [A[l]]

     

  

  return Order

   

def PrintOrder(A):

   

  

  x, y, z = [], [], []

   

  for i in range(len(A)):

    x.append ((A[i][0], EN[i][1], EN[i][2], I))

    y.append ((A[i][1], EN[i][0], EN[i][2], I))

    z.append ((A[i][2], EN[i][0], EN[i][1], I))

   

  

  x.sort(reverse = True)

  y.sort(reverse = True)

  z.sort(reverse = True)

     

  

  order = findOrder(A, x, y, z)

   

  

  print(order)

         

 

A = [[4, 1, 1], [3, 1, 1], [2, 1, 1]]

 

PrintOrder(A)

Producción:


[[4, 1, 1], [3, 1, 1], [2, 1, 1]]

Complejidad del tiempo: EN)
Sala auxiliar: EN)

¡Atención lectores! No dejes de aprender ahora. Obtenga todos los conceptos principales de DSA con el Curso de autoaprendizaje de DSA a un precio asequible para los estudiantes y conviértase en apto para la industria. Para completar su preparación desde el aprendizaje de un idioma hasta DS Algo y mucho más, lea Toma el curso de preparación para entrevistas.

En caso de que quieras participar Clases en vivo con expertos, consulte Cursos en vivo de DSA para profesionales y Programación de competencias en vivo para estudiantes.

Source link