lc1. La suma de dos números

Dado un número entero de matrices y un objetivo de valor objetivo, encuentre los dos enteros cuya suma es el valor objetivo en la matriz y devuelva su índice de matriz.

Puede suponer que cada entrada solo corresponderá a una respuesta. Sin embargo, no puede reutilizar los mismos elementos en esta matriz.

Fuente: LeetCode Enlace: https://leetcode-cn.com/problems/two-sum El
copyright pertenece a la red de deducción. Comuníquese con la autorización oficial para la reimpresión comercial e indique la fuente de la reimpresión no comercial.

class Solution {
    public int[] twoSum(int[] nums, int target) {
      Map<Integer, Integer> map = new HashMap<>();
      int comp;
      for(int i = 0; i < nums.length; i++){
          comp = target - nums[i];
          if(map.containsKey(comp))
                return new int[] {i, map.get(comp)};
          map.put(nums[i], i);
      }
        throw new IllegalArgumentException("No two sum solution");
    }
}

Principalmente el uso de tablas hash. La tarea se puede completar con un recorrido.
Tenga en cuenta algunos:

  1. Map es una interfaz y sus clases de implementación son HashMap y HashTable . El primero no es seguro para subprocesos , el último es lo contrario.
  2. new int [] {1,2,3} es el constructor de la matriz .
21 artículos originales publicados · elogiados 0 · visitas 84

Supongo que te gusta

Origin blog.csdn.net/weixin_43963453/article/details/105390680
Recomendado
Clasificación