[Práctica diaria] - la solución de dos números

título Descripción

Dado un entero nums matriz y un objetivo de valor objetivo, y pedirle que identifique el valor objetivo de los dos enteros de la matriz, y regresar a su subíndice de matriz. Se puede suponer que cada entrada corresponde a una sola respuesta. Sin embargo, no se puede volver a utilizar el mismo elemento de la matriz.
El título proviene del leetcode, haga clic para entrar

Leer título

Ejemplo:
Dada nums = [2, 7, 11 , 15], target = 9
porque nums [0] + nums [1 ] = 2 + 7 = 9
se devuelve [0, 1]

Una solución

Primero con un métodos relativamente bajos de resolución, el bucle doble para atravesar la matriz para resolver
valor este segundo ciclo i + 1 de la parte de inicio del ciclo se puede reducir, como en el ciclo anterior ha sido verificada es más pequeño que el subíndice i es poco probable que sea la posición i obtenido añadiendo el valor de objetivo.

public static int[] twoSum(int[] nums, int target) {
        for (int i = 0; i < nums.length; i++) {
            int numA = nums[i];
            int numB = target - numA;
            for (int j = i+1; j < nums.length; j++) {
                if(numB == nums[j]){
                    return new int[]{i,j};
                }
            }

        }
        return null;
    }

solución de dos

Aquí no sólo tenemos que determinar si hay un valor en esta matriz, también es necesario para obtener su ubicación, está claro que la tabla hash es la mejor manera de

public static int[] twoSum(int[] nums, int target) {
        Map<Integer,Integer> map  = new HashMap<Integer,Integer>();
        for (int i = 0; i < nums.length; i++) {
            int numA = nums[i];
            int numB = target - numA;
            if(map.containsKey(numB)){
                return new int[]{map.get(numB),i};
            }
            map.put(numA,i);

        }
        return null;
    }

Esto sólo tiene que pasar por la matriz de nuevo, la eficiencia se mejora mucho.

Publicado 26 artículos originales · ganado elogios 6 · vistas 2936

Supongo que te gusta

Origin blog.csdn.net/weixin_45676630/article/details/105179573
Recomendado
Clasificación