枚举
枚举是一种基本的算法,通过穷举所有可能的情况来解决问题。思想是将问题的解空间中的每个可能的解都枚举出来,并进行验证和比较,找到满足问题条件的最优解或者所有解。
枚举适合问题规模较小、解空间可穷举的情况。优点是简单直观,不需要复杂的数学推导,易于实现。对于规模很大的情况下,枚举的时间复杂度会很高。
解空间可以是一个范围内的所有数字(二元组、字符串),或者满足某个条件的所有数字。当然也可以是解空间树,一般分为子集树和排列树。
循环枚举解空间
例题:
模拟
模拟算法通过模拟实际情况解决问题,容易理解但实现起来较为复杂。一般不涉及太难的算法,考察细心程度和整体的逻辑思维。
为了逻辑更加清晰,经常写很多小函数来帮助解题,例如:int和string的相互转换,回文串的判断,日期的转换,各种特殊条件的判断。
会写的比较暴力。
例题