[W] valor máximo A008_ montón de rendimiento del equipo (arriba pequeña pila)

Uno, Título Descripción

Hay n ingenieros numeradas de 1 a N y dos matrices: velocidad y eficiencia, donde la velocidad [i] y la eficiencia [i] representan la velocidad y la eficiencia para el i-ésimo ingeniero respectivamente. Devuelve el máximo rendimiento de un equipo compuesto por al mayoría de los ingenieros k, ya que la respuesta puede ser un número enorme, devuelva este módulo 10 ^ 9 + 7.

El rendimiento de un equipo es la suma de las velocidades de sus ingenieros multiplicado por la eficiencia mínima entre sus ingenieros.

输入:n = 6, speed = [2,10,3,1,5,8], efficiency = [5,4,3,9,7,2], k = 2
输出:60
解释:
我们选择工程师 2(speed=10 且 efficiency=4)和工程师 5(speed=5 且 efficiency=7)。
他们的团队表现值为 performance = (10 + 5) * min(4, 7) = 60

Significado de las preguntas: Cuando dos soluciones de igual eficiencia, rapidez y gran esquema de las aparentemente mejor. Transformado en cuestión de cómo obtener rápidamente una eficiencia óptima de cada programa.

algoritmo

  • Todo el mundo en orden descendente de acuerdo a la eficiencia e.
  • Seleccionar k mayor velocidad en una gran variedad de especies.
public int maxPerformance(int n, int[] speed, int[] efficiency, int k) {
  int[][] pair = new int[n][2];
  for (int i = 0; i < n; i++) {
      pair[i][0] = speed[i];
      pair[i][1] = efficiency[i];
  }
  Arrays.sort(pair, (e1, e2) -> e2[1] - e1[1]);
  
  PriorityQueue<Integer> pQ = new PriorityQueue<>();
  long max = 0, sd = 0;
  for (int i = 0; i < n; i++) {
      pQ.add(pair[i][0]);
      sd += pair[i][0];
      if (pQ.size() > k) {
          sd -= pQ.poll();
      }
      max = Math.max(max, sd * pair[i][1]);
  }
  return (int)(max % ((int)1e9 + 7));
}

Análisis de la complejidad

  • Complejidad de tiempo: la ( norte l la sol norte ) O (n log n) ,
  • Espacio de la complejidad: la ( k ) Okay) ,
Publicados 495 artículos originales · ganado elogios 105 · Vistas a 30000 +

Supongo que te gusta

Origin blog.csdn.net/qq_43539599/article/details/104880448
Recomendado
Clasificación