题解 | #扑克牌顺子#

扑克牌顺子

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;
         }
     }
    }
全部评论

相关推荐

沉淀一会:**圣经 1.同学你面试评价不错,概率很大,请耐心等待;2.你的排名比较靠前,不要担心,耐心等待;3.问题不大,正在审批,不要着急签其他公司,等等我们!4.预计9月中下旬,安心过节;5.下周会有结果,请耐心等待下;6.可能国庆节前后,一有结果我马上通知你;7.预计10月中旬,再坚持一下;8.正在走流程,就这两天了;9.同学,结果我也不知道,你如果查到了也告诉我一声;10.同学你出线不明朗,建议签其他公司保底!11.同学你找了哪些公司,我也在找工作。
点赞 评论 收藏
分享
shtdbb_:还不错,没有让你做了笔试再挂你
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务