前言
有限状态机,顾名思义有限个状态在事件的触发下做出相应状态的转换。
一、例题
在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。
1、HashMap
可以用Map记录一个元素出现的次数,然后遍历Map得到记录次数为1的数字。
public int singleNumber3(int[] nums) {
//用map记录该数字是否记录过
Map<Integer, Integer> record = new HashMap<>();
for (int num : nums) {
record.put(num, record.getOrDefault(num, 0) + 1);
}
//寻找map中记录中只记录一次的数字
for (int num : nums) {
if (record.get