【剑指offer】之扑克牌的顺子

题目:

   随机从一副扑克牌中抽出了5张牌,判断是否是顺子,即五张牌是不是连续的。大\ 王可以看成任何数字,并且A看作1,J11,Q12,K13。(本文不大、小王看做0)


分析:

  


java代码实现:

 

	private static boolean isContinuous(int[] numbers) {
		if(numbers == null || numbers.length<1) {
			return false ;
		}
		
		MergeSort.sort(numbers); //升序排序,
		
		int numbersOfzero = 0;
		int numbersOfgap = 0;
		
		for(int i=0;i<numbers.length;i++) { //统计鬼牌的数目
			if(numbers[i] == 0)
				numbersOfzero++;
		}
		
		int start = numbersOfzero ;
		int next = start + 1;
		while(next < numbers.length) {
			if(numbers[start] == numbers[next]) //如果有对子,则这副牌不可能是顺子了
				return false;
			
			numbersOfgap = numbers[next] - numbers[start] - 1; 
			start = next ;
			next = start + 1;
		}
		
		return numbersOfgap < numbersOfzero ? true:false;
	}

 

     


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值