Abrí una nueva columna para registrar mis pruebas diarias y también para desarrollar el hábito del estudio diario. ¡Espero seguir siendo yo mismo después de un año!
1. Tema
Dada una matriz de enteros nums
y un valor objetivo entero , busque los dos números enteros cuya suma es el valor objetivo target
en la matriz y devuelva sus subíndices de matriz.target
Puedes asumir que solo hay una respuesta para cada entrada. Sin embargo, el mismo elemento de la matriz no puede aparecer repetidamente en la respuesta.
Puede devolver respuestas en cualquier orden.
Ejemplo 1:
Entrada: nums = [2,7,11,15], destino = 9 Salida: [0,1] Explicación: Debido a que nums[0] + nums[1] == 9, devuelve [0, 1].
Ejemplo 2:
Entrada: números = [3,2,4], objetivo = 6 Salida: [1,2]
Ejemplo 3:
Entrada: números = [3,3], objetivo = 6 Salida: [0,1]
Dos, análisis del pensamiento.
Algunas personas se enamoran, otras conducen de noche para ver el mar y otras no pueden resolver el primer problema de LeetCode.
Soy yo (°̥̥̥̥̥̥̥̥o°̥̥̥̥̥̥̥̥)
Pero está bien, bien decía la "Práctica Deliberada", tenemos que encontrar nuestras propias deficiencias, esta es nuestra retroalimentación, y luego fortalecerla, después de algunos ciclos, es difícil para nosotros no mejorar.
Primero leí la respuesta, luego continué depurando y finalmente la escribí.
Sin más preámbulos, aquí está mi proceso de pensamiento:
Como buscamos la suma de dos números, primero debemos definir dos variables i y j para atravesar la matriz.
Luego pisé el hoyo varias veces y no me di cuenta de que el título decía: "El mismo elemento en la matriz no puede aparecer repetidamente en la respuesta". (Esto también me recuerda que es muy importante leer las preguntas con atención cuando haciendo las preguntas ! )
Luego, como no se puede repetir, dejamos que i atraviese directamente desde el subíndice 0 y j atraviese desde i+1.
Finalmente está la escritura del valor de retorno, es la primera vez que me encuentro con el problema de devolver una matriz y basta con pisar el hoyo una vez. Ahora escríbalo así: return new int [] {}; si lo encuentra más tarde, podrá aprenderlo en profundidad.
3. Código completo
class Solution {
public int[] twoSum(int[] nums, int target) {
for(int i = 0 ;i<nums.length;i++ ){
for(int j = i+1 ; j< nums.length; j++){
if(nums[i]+nums[j]==target){
return new int[]{i,j};
}
}
}
return new int[]{0};
}
}
Lo anterior es todo el contenido de este blog. Si hay alguna deficiencia, indíquela. ¡Espero progresar con usted!