剑指offer------扑克牌顺子

题目:

思路:

代码:

class Solution
{
public:
	bool IsContinuous(vector<int> numbers)
	{
		int length=number.size();
		if(length<=0)
			return fasle;
			
		//排序数组
		sort(numbers.begin(),numbers.end());
		
		int numberOfZero=0;
		int numberOfGap=0;
		
		//求0的个数
		for(int i=0;i<length && number[i]==0;i++)
			++numberOfZero;
		
		//统计数组中的间隔数目
		int small = numberOfZero;  //非0数的最小下标
		int big = small+1;
		while(big<length)
		{
			//两个数相等,有对子,不可能是顺子
			if(number[small]==numbers[big])
				return false;
				
			numberOfGap+=numbers[big]-numbers[small]-1;
			//相邻的两个数做差
			small = big;
			++big;
		}
		return (numberOfGap<numberOfZero)?true:false;
	}
}

猜你喜欢

转载自blog.csdn.net/qq_39503189/article/details/82869716