diemax / learning

Our infinite learning journey
1 stars 0 forks source link

Sistema, organizacion #1

Open diemax opened 5 years ago

diemax commented 5 years ago

Hola Rodrigo

Explicame un poco cual es tu sistema para organizar el learning hasta ahora.

En mi caso tengo que ponerme a resolver problemas de arrays y strings, a medida que voy encontrando enlaces los voy a ir posteando en este thread

https://www.hackerrank.com/domains/algorithms?filters%5Bsubdomains%5D%5B%5D=strings

https://www.byte-by-byte.com/tag/array/

Por ahora resolvi este:

function reverseArr(arr) {
    let reversedArr = [];
    for (let index = arr.length - 1; index >= 0; index--) {
        reversedArr.push(arr[index])
    }

    return reversedArr;
}

console.log(reverseArr([1, 2, 3])); // [3, 2, 1]

Por lo que vi aca, hay varias formas de hacerlo, una vez con la function nativa https://medium.freecodecamp.com/how-to-reverse-a-string-in-javascript-in-3-different-ways-75e4763c68cb

Array.reverse()

esta es una buena opcion para documentar lo aprendido:

https://github.com/Syknapse/My-Learning-Tracker

iamrodrigo commented 5 years ago

https://docs.google.com/spreadsheets/d/15cnLvjtgtZrwNTdnPHNf4zC9sw4qcHXn2Ru71CX-uho/edit?usp=sharing Utilizo este excel, me ha ayudado a tener bastante control de como lo estoy haciendo, tengo los temas que voy a estudiar, los estudiados y el tiempo que planeo invertir (aunque un poco desactualizado esa parte)

Respecto a tu solucion, tu respuesta es O(n) y usa O(n) espacio

MIra esta solucion que hice

function reverseArrayt(arr) {
    let lengthOfArray = arr.length -1
    let temp = undefined;

    for(let i = 0; i <= (arr.length/2) - 1; i++) {
        temp = arr[i]
        arr[i] = arr[arr.length - i - 1]
        arr[arr.length - i - 1] = temp;

    }
    return arr;
}

El orden es O(n/2) y utiliza O(1) de espacio dado que no utiliza un array extra :)