In computational complexity theory, NP (nondeterministic polynomial time) is a class of problems for which a solution can be verified in polynomial time by a deterministic Turing machine. NP includes all problems that can be solved in polynomial time, but it is not known whether all problems in NP can be solved in polynomial time.
Example: The traveling salesman problem is an NP-complete problem, which means that given a solution, it can be verified in polynomial time whether the solution is correct or not. Other examples of NP problems include the knapsack problem, the Boolean satisfiability problem (SAT), and the decision problem for first-order logic.