题解 | #扑克牌顺子#

扑克牌顺子

http://www.nowcoder.com/practice/762836f4d43d43ca9deb273b3de8e1f4

  1. 排序
  2. 统计0的个数;
    1)0的个数为5,直接返回false;
  3. 统计非0值的之间的空缺数量;
    1)若有两个非0值相等,返回false;
  4. 若0的数量大于空缺数量,返回true;
    import java.util.*;
    public class Solution {
     public boolean IsContinuous(int [] numbers) {
         sort(numbers);//对numbers进行排序(插入排序)
         int zero=0;//0的个数
         int dis=0;//空缺数量
         //统计0的个数
         while(numbers[zero]==0){
             zero++;
         }
         //若0的个数为5,直接返回false;
         if(zero==5){
             return false;
         }
         //统计空缺的数量
         for(int i=zero+1;i<numbers.length;i++){
             //如果有两个相等的非0值,返回false
             if(numbers[i]==numbers[i-1]){
                 return false;
             }else{
                 dis+=numbers[i]-numbers[i-1]-1;
             }
         }
         return zero>=dis;//若0的数量大于空缺数量,返回true;
     }
     //插入排序
     public void sort(int[] numbers){
         for(int i=1;i<numbers.length;i++){
             int temp=numbers[i];
             int index=i;
             while(index>0 && temp<numbers[index-1]){
                 numbers[index]=numbers[index-1];
                 index--;
             }
             numbers[index]=temp;
         }
     }
    }
全部评论

相关推荐

在瑞幸干两年,奥特曼都得闪灯
不知名的牛友:奥特曼每天只上3分钟班
点赞 评论 收藏
分享
代码飞升:别用口语,后端就写后端,前端就写前端,最后别光后悔
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务