Programador Actualización Daguai Nivel 1: ¿Cómo encontrar rápidamente que la suma de dos números en la matriz es igual al valor objetivo?

Hola a todos, soy " @ 不 飞 的 小飞 驴"

1 Dado un número de matriz de enteros y un objetivo de valor de destino entero, busque los dos enteros cuya suma sea el valor de destino en la matriz y devuelva sus subíndices de matriz.

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

Lo primero que me viene a la mente es agregar el primer elemento y los siguientes elementos para ver si es igual al valor objetivo, si no, el segundo y el tercero.

Utilice el valor como clave y el subíndice como valor, recorra la matriz, establezca un mapa, determine si el mapa contiene el valor objetivo actual: el valor actual, si lo hay, regrese directamente, si no, póngalo en el mapa .
Entonces escribiremos el código más tarde, si hay un bucle for de doble capa, se recomienda considerar map.

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

Supongo que te gusta

Origin blog.csdn.net/u014251610/article/details/113477849
Recomendado
Clasificación