状态法
可乐老师课堂
编辑于 2023年12月20日 06:06
收录于文集
共15篇

一:原理

数组是由多个元素组合的线性表,每个元素都是连续的,每个元素都有对应的下标。数组的下标是从0开始的正整数。那么数组就具有下标和元素两样东西。

数组赋值

二:状态

如果遇到带有编号的题目,如:有5个人排成一行,编号为1-5,老师每次点到名的同学向后转身,一开始所有同学都是面向老师的,点名一次后就背对老师,再点名一次就面向老师,问5次命令后,哪些同学面向老师?

解题思路: 编号不变,而且都是整数,数据范围跨度不大,所以可以用下标代替编号,而数组里保存的元素就可以保存相应的状态,可用相应的数字代表不同的状态。例如:用0代表面向老师,用1代表背向老师

所以一开始的数组为:

初始化

当点名为 1 2 3 时,相应的同学转身,列表内容修改为1:

点名后

再次点名2 4时,2号同学会从1变成0:

再次点名后

然后再使用for循环遍历列表中0的个数即为面向老师的同学个数。

注意:0是占位作用,并不加入计算。刚开始学习时也可以从0开始,结果减少1计算即可。但占位思想以后用处较大,建议还是0号位置用来占位。

代码

三:个数

用下标代表数字,内容保存相应数字的个数。如:输入6个1-5的数字,记录所有数字出现的次数,例如输入1 2 5 3 2 1,其中1出现2次,2出现2次,3出现1次,5出现1次。

记录数字