Categorías
Algorithms Interview

Two Sum III – Diseño de estructura de datos (Java)

Diseñe e implemente una clase TwoSum. Debe admitir las siguientes operaciones: agregar y buscar.

agregar: agrega el número a una estructura de datos interna.
buscar: encuentra si existe algún par de números cuya suma sea igual al valor.

Por ejemplo,

add(1); 
add(3); 
add(5);
find(4) -> true
find(7) -> false

Solución Java

Dado que la clase deseada necesita operaciones de adición y obtención, HashMap es una buena opción para este propósito.

public class TwoSum {
	private HashMap<Integer, Integer> elements = new HashMap<Integer, Integer>();
 
	public void add(int number) {
		if (elements.containsKey(number)) {
			elements.put(number, elements.get(number) + 1);
		} else {
			elements.put(number, 1);
		}
	}
 
	public boolean find(int value) {
		for (Integer i : elements.keySet()) {
			int target = value - i;
			if (elements.containsKey(target)) {
				if (i == target && elements.get(target) < 2) {
					continue;
				}
				return true;
			}
		}
		return false;
	}
}

  LeetCode - Suma de ruta mínima (Java)

Por Programación.Click

Más de 20 años programando en diferentes lenguajes de programación. Apasionado del code clean y el terminar lo que se empieza. ¿Programamos de verdad?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *