题解 | #扑克牌顺子#

扑克牌顺子

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


public class Solution {
    public boolean IsContinuous(int [] numbers) {
        ArrayList<Integer> listNotZero = new ArrayList<>();
        int zeroNum = 0;
        // 把非零 元素拿出来 并统计0的个数
        for(int i = 0; i < numbers.length; i++){
            if(numbers[i] != 0){
                listNotZero.add(numbers[i]);
            }
        }
        zeroNum = numbers.length - listNotZero.size();
        
        // 把非0元素排序
        Collections.sort(listNotZero);
        // 遍历非零元素, 前后两个元素相差 大于1的,在他们中间用0 补上,同时0的个数减少1
        for(int i = 0; i < listNotZero.size() -1; i++){
            if(listNotZero.get(i) + 1 != listNotZero.get(i + 1) && zeroNum != 0){
                listNotZero.add(i + 1, listNotZero.get(i) + 1);
                zeroNum --;
            }
        }
        // 判断是不是连续的数字
        boolean isTrue = true;
        for(int i = 0; i < listNotZero.size() -1; i++){
            if(listNotZero.get(i) + 1 != listNotZero.get(i + 1)){
                isTrue = false;
                break;
            }
        }
        return isTrue;
    }
}
全部评论

相关推荐

11-02 09:49
已编辑
货拉拉_测试(实习员工)
热爱生活的仰泳鲈鱼求你们别卷了:没事楼主,有反转查看图片
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务