连续的五张被称为顺子。两个鬼可以当做任意的牌来用。
其他牌记做1,2,3,,,13。
给定任意的五张牌,判断周五张牌是不是顺子。
我的思路:
申请一个长度为14的数组,分别代表1,2,3,,,13,和鬼。数组初始化为0。
那么,每次给定五张牌的时候将这五张牌“散列”到数组中,数组的值置为1。
从前到后遍历数组,找到第一个1,从后到前遍历数组,找到除了鬼之前的第一个1,然后这两个位置相减,记结果为d。
如果d正好是5,那么就是顺子。否则,不是顺子。
时间复杂度为O(5+14),空间复杂度为O(14)。