Algorithms in Coding Interviws Flashcards
https://www.youtube.com/@NeetCode/playlists
arrays
zero based index
contiguous memory (one next to each other, in order)
memory, good for read (slower to insert, delete)
links list
has a pointer
es desordenado para inserts/delete
memory, good for inset/delete. slow for read
hash maps are dictionaries. With key and values
unordered
good for searching
stacks and 3 methods can be used.
In JS arrays can funciotn as stack
of pancakes!!
LIFO (last in, first out)
you can:
-push
-pop
-peek (at the top element)
trees –> real virtual dom
tiene nodos conectados
el root
con parent-child direction (react virtual dom)
binary search trees.
se hace con clases en js
graphs
son modelos
Search Algoritm: binary search
-guess game
-complejidad es O(log n).
- ordenado en orden ascendente
- busqueda es un número objetivo
binary search
-si la lista esta ordenada
-empezas en el medio, mejor la eficiencia que una linear search
-eficiencia mejor que la linear search
Sorting: insertion sort
Ex: order an array
get first compare with second
Sorting: merge sort
related to recursion algorimn
https://www.youtube.com/watch?v=DjYZk8nrXVY&ab_channel=AshishPratapSingh
prefixSum
function prefixSum(arr) {
const prefixSums = [0]; // Inicializamos con 0 para manejar el caso de sumar desde el inicio
for (let i = 0; i < arr.length; i++) {
prefixSums[i + 1] = prefixSums[i] + arr[i]; // Guardamos la suma acumulada hasta el índice i
}
return prefixSums;
}
const prefixSums = prefixSum(arr);
console.log(prefixSums); // [0, 1, 3, 6, 10, 15]
prefixSum.
Problem 303 in javascript.
Tell me:
how to create a class
how to inialize a number in a constructor
how to sumInRange (this is a method/function)
class NumArray {
constructor(nums) {
this.nums = nums; // Initialize the nums array
}
sumRange(left, right) { let c = 0; for (let i = left; i <= right; i++) { c += this.nums[i]; // Access the stored array using this.nums } return c; } }
largo spelling
length
prefixSum
525. Contiguous Array
Explain el problema y como encararlo.
https://www.youtube.com/watch?v=9ZyLjjk536U&ab_channel=Techdose
Pensar que pide buscar en numeros binearios es decir 0,1. Te da un array de eso. Hay que buscar la mayor cantidad de 0,0,1,1 (es decir misma cantidad presente en un subarray) y devolver el largo.
Por lo cual hay que pensar como recorrer el array original en un loop y conseguir ese subarray length.
Una forma de pensarlo:
es que la suma se tiene que mantener igual en un momento, significando que no hay modificacion.
cantiad de 1 y 0 es igual es el subarray == subarray valido.
Los counters tienen que ser iguales.
Count 1 - count 0 = 0