What are the 5 criteria in an algorithm?
All algorithms must satisfy the following criteria:
- Zero or more input values.
- One or more output values.
- Clear and unambiguous instructions.
- Atomic steps that take constant time.
- No infinite sequence of steps (help, the halting problem)
- Feasible with specified computational device.
How do I get better at solving programming problems?
Figure out a solution, and if it’s similar to one of your core problems (which it often is), you’re done. No need to actually code and debug it because you’re already good at that. Identify a list of ~100 core problems. Many sites give you 100 curated problems. Cracking the Coding Interview.
What are some good topics on algorithms for coding contest?
Analysis of algorithms,Searching and Sorting, Greedy Algorithms, Dynamic programming, Pattern searching, Backtracking, Divide and Conquer and Bit algorithms are explained clearly. Top coder is one of the coding contest site mainly focus on algorithmic questions. Here is the good collection of algorithmic topics by various topcoder members.
What are the best resources for learning data structures and algorithms?
Geeksforgeeks is another very valuable resource for learning about data structures and algorithms. I like how it provides code snippets in various languages, usuallyC++, Java, and Python, which you can copy and paste into your IDE to step through line-by-line.
What is the best way to practice problem solving skills?
The key is to practice them. When you see a problem, you should immediately be able to break it down and re-create the solution. This is different from rote learning. You’re recognizing different components, breaking them down and solving the problem. The best technique we’ve seen – solve the problem again in 3 days.