├── README.md └── algorithms_study_resources.md /README.md: -------------------------------------------------------------------------------- 1 | #Welcome to Algorithms 2 | 3 | Repo under construction. -------------------------------------------------------------------------------- /algorithms_study_resources.md: -------------------------------------------------------------------------------- 1 | # Resources to learn Algorithms and Problem Solving using Data Structures and Algorithms 2 | 3 | If you would like to learn more about algorithms or practice them, then read on. 4 | 5 | ## Resources 6 | 7 | ### Some Videos and Reviews that We Made 8 | * [Big-O Notation](https://github.com/valeriecodes/big-o-review) 9 | * [Basic Data Structures](https://github.com/ghoshkaj/datastructures) 10 | * [Recursion](https://github.com/valeriecodes/recursion-review) 11 | * [Binary Search Trees](https://www.youtube.com/watch?v=ov2LTtBtTko) (Video) 12 | * [Tries and Graphs](https://www.youtube.com/watch?v=_kKDHW1JKsc) (Video) 13 | 14 | ### Practice 15 | * [HackerRank](https://www.hackerrank.com/) - to practice solving algorithmic problems in Java, Python, C++ - has an in-built IDE 16 | * [InterviewCake](https://www.interviewcake.com/) - for currently popular interview questions and answers. You do not have to write any code to see hints to the solution. After a limited number of free questions, you will have to sign up/pay. But it's a great resource anyways, and you can sign up for a question/week for free. 17 | * [Project Euler](https://projecteuler.net/problems) - for more mathematical problems to practice on. Solution explanations are provided after submitting the correct answer (not code) 18 | * [CodingBat for Recursion](http://codingbat.com/java/Recursion-1) - to sink your teeth into simple recursion problems that build up to be more and more difficult. IDE is built in, all in Java. There's also a [second part](http://codingbat.com/java/Recursion-2) to this. 19 | * [Google Code Jam past competition problems](https://code.google.com/codejam/contest/9214486/dashboard) - a nice set of problems that have been used in competitions previously. 20 | 21 | 22 | ### Language Specific 23 | * [Python](http://interactivepython.org/runestone/static/pythonds/index.html) - a really good resource to learn how to work with data structures and algorithms in Python. 24 | 25 | 26 | ### Visualizations 27 | * [Sorting Algorithms](http://www.sorting-algorithms.com/) - visualizations and code in psuedo code, but easily adatpable to Python and Java for all the most common sorting algorithms. 28 | * [Visualgo](http://visualgo.net/) - a nice way to visualize algorithms 29 | 30 | 31 | ### Competitions 32 | * [ACM-ICPC](http://acm.timus.ru/problemset.aspx) - ACM-ICPC hosts coding competitions that may be found here 33 | * [TopCoder (advanced)](http://www.topcoder.com/) - more difficult and challenging algorithmic problems may be found here 34 | * [Google Code Jam](https://code.google.com/codejam) - Google hosts a Code Jam every year with Qualification rounds in April. They also hosted a Code Jam exclusively for women, with winners going to Google I/O. They also have a code practice area if you don't want to compete 35 | 36 | ### Books 37 | * [Programming Interviews Exposed](http://www.amazon.com/Programming-Interviews-Exposed-Secrets-Landing/dp/1118261364) - A really good book that explains the process of writing a solution and then optimizing parts of the solution with goog explanations about why that particular optimization is being done. Solutions in Java 38 | * [Cracking the Coding Interview](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/) - A good book to practice questions and answers from with solutions in Java. This is better after you have a bit more practice, as it contains solutions and optimizations but doesn't hold your hand up to the optimizations. 39 | --------------------------------------------------------------------------------