Saltar al contenido

Maximice el valor mínimo de la matriz cambiando elementos con K veces adyacentes

Dada una matriz Arr[] de norte enteros y un entero kDónde k especifica el número máximo de operaciones que se pueden aplicar a la matriz, el trabajo es maximizar el valor mínimo de Arr[] usando la operación máxima dada k tiempo.

  • En una sola operación es posible reemplazar cualquier elemento de arr . para seleccionar[] en una sola operación y puede cambiarlo con el elemento adyacente.

Ejemplos:

Aporte: N = 7, K = 4, luego[] = {9, 7, 3, 5, 7, 8, 7}
Salida: 7
Explicación: Primera operación: Cambio 3 en el índice 2 con 7 en el índice 1.
entonces el arr[] se convierte en: {9, 7, 75, 7, 8, 7}
Segunda operación: Cambio 5 en el índice 3 con 7 en el índice 2.
entonces el arr[] se está convirtiendo: {9, 7, 777, 8, 7}
Tercera operación: Cambio 7 en el índice 6 con 8 en el índice 5.
entonces el arr[] se está convirtiendo: {9, 7, 7, 7, 7, 8, 8}
Cuarta operación: Cambio 7 en el índice 1 con 9 en el índice 0.
entonces el arr[] se está convirtiendo: {9, 9, 7, 7, 7, 8, 8}
El valor mínimo en arr[] después de aplicar la operación el máximo de K veces es: 7

Aporte: N = 4, K = 2, arreglo[] = {2, 5, 6, 8}
Salida: 6
Explicación: Primera operación: Cambie 5 en el índice 1 por 6 en el índice 2.
Para que el arr[] se está convirtiendo: {266, 8}
Segunda operación: Cambie 2 en el índice 0 con 6 en el índice 1.
Para que el arr[] se está convirtiendo: {66, 6, 8}
El valor mínimo de arr[] se puede lograr aplicando operaciones es: 6

Acercarse: Siga la siguiente idea para resolver el problema:

Tipo el arr[]si K es mayor o igual que la longitud de arr[]simplemente devuelva el elemento en el último índice de arr[] de lo contrario, devolver el elemento en kmi índice de arr[].

Ilustración con un ejemplo:

Considerar N = 6, K = 3, arreglo[] = {9, 7, 3, 1, 2, 5}

Podemos realizar las siguientes operaciones:

Operación 1:- Cambie 2 en el índice 4 por 5 en el índice 5 . entonces el arr[] se convierte en: {9, 7, 3, 1, 55}
Operación 2:- Cambie 1 en el índice 3 por 5 en el índice 4 . entonces el arr[] se convierte en: {9, 7, 3, 55, 5}
Operación 3:- Cambie 3 en el índice 2 por 7 en el índice 1 . entonces el arr[] se convierte en: {9, 7, 75, 5, 5}
El elemento mínimo después de un máximo de 3 actuaciones es: 5

Cuando quieras tipo el arr[] Y vuelve Arr[K] obtendrá el mismo resultado: –

ordenado por[]: {1, 2, 3, 5, 7, 9}

Arr[K] = arr[3] = 5esa es la respuesta requerida.

Siga los pasos para resolver el problema:

  • Tipo las series.
  • Comprobar si k es mayor o igual a Arr[] O no.
    • En caso afirmativo, simplemente devuelva el elemento en el último índice de arr[].
    • De lo contrario, devuelva el elemento en el kmi índice de arr[].
  • Imprima la salida.

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

Java

 

import java.util.*;

 

class GFG {

 

    

    public static void main(String[] args)

    {

        int N = 6, X = 3;

        int[] arr = { 9, 7, 3, 1, 2, 5 };

 

        

        System.out.println(Min_Value(N, X, arr));

    }

 

    

    static int Min_Value(int N, int X, int arr[])

    {

        

        

        Arrays.sort(arr);

 

        

        

        

        

        if (X == arr.length || X > arr.length)

            return (arriba[arr.length - 1]);

 

        

        

        

        else

            return (arr[X]);

    }

}

Complejidad del tiempo: O(N * logN), porque la clasificación está en curso.
cuarto auxiliar: O(1), porque no se necesita espacio adicional.