These are a collection of favorite tutorials I've read relating to algorithms. These mostly use pseudocode and are not specific to a particular language. Some may have examples in a particular language, but rest assured the main explanation of the algorithm is given in a way where no particular language is needed.
I've collected these here as a reference guide in case I ever need to come back to them. I hope they might be useful for someone else too.
Manacher's Algorithm - used for finding the longest palindromic string in a sequence.
Bitwise comparisons - this article is about Lisp operators, but don't let that stop you! The bitwise comparison section has one of the best and most concise explanations I've seen. If you don't understand bitwise comparisons (in any language), it will all become clear after you read the explanation, even if you don't know Lisp.
Faces of Fibonacci - An absolutely superb explanation of the "How Many Ways to do x?" question. Highly recommended.
"Output the answer modulo 10^9+7" - A great description of not just why, but how, to calculate your answers modulo 10^9+7 - something that is frequently required in programming contests for problems when you're dealing with very large numbers. The article includes a very important explanation of why division is much more difficult to handle, and how to handle it if you need to.
And more to come soon!
I've collected these here as a reference guide in case I ever need to come back to them. I hope they might be useful for someone else too.
Manacher's Algorithm - used for finding the longest palindromic string in a sequence.
Bitwise comparisons - this article is about Lisp operators, but don't let that stop you! The bitwise comparison section has one of the best and most concise explanations I've seen. If you don't understand bitwise comparisons (in any language), it will all become clear after you read the explanation, even if you don't know Lisp.
Faces of Fibonacci - An absolutely superb explanation of the "How Many Ways to do x?" question. Highly recommended.
"Output the answer modulo 10^9+7" - A great description of not just why, but how, to calculate your answers modulo 10^9+7 - something that is frequently required in programming contests for problems when you're dealing with very large numbers. The article includes a very important explanation of why division is much more difficult to handle, and how to handle it if you need to.
And more to come soon!