-
Notifications
You must be signed in to change notification settings - Fork 0
Patrones Rust para Entrevista
Joel Alvarez edited this page Jul 12, 2026
·
10 revisions
let mut counts = std::collections::HashMap::new();
for value in values {
*counts.entry(value).or_insert(0) += 1;
}Aplicaciones:
- Anagramas.
- Top K frequent.
- Conteo de caracteres o numeros.
let mut seen = std::collections::HashMap::new();
for (index, value) in nums.into_iter().enumerate() {
let complement = target - value;
if let Some(&previous_index) = seen.get(&complement) {
return Some((previous_index, index));
}
seen.insert(value, index);
}Aplicaciones:
- Two Sum.
- Pares con target.
- Deteccion de relaciones valor-indice.
let values: std::collections::HashSet<i32> = nums.into_iter().collect();
for &value in &values {
if values.contains(&(value - 1)) {
continue;
}
}Aplicaciones:
- Duplicados.
- Secuencias consecutivas.
- Visitados en grafos.
pub fn find_value(nums: Vec<i32>, target: i32) -> Option<usize> {
for (index, value) in nums.into_iter().enumerate() {
if value == target {
return Some(index);
}
}
None
}Usar Option cuando una respuesta puede no existir. Es mas idiomatico que devolver -1.
Los mapas no garantizan orden de iteracion. Si una funcion regresa grupos, ordenar antes de comparar:
for group in &mut result {
group.sort();
}
result.sort();