포커 스트레이트 : 안전 마흔다섯을 증명하기 위해 제공

캐주얼 작업

그는 한 벌의 카드를 구입하고 실제로 두 왕이가 발견 때문에 LL 특히 기분이 좋은 오늘, 두 개의 작은 왕 (갑판은 원래 54이었다 _ 내가 테스트하고 싶습니다 ... 그는 무작위로 5 개 개의 카드에서 인출) 자신의 행운을 테스트, 당신이 바로 얻을 수있을 수 있는지, 그것을 얻을 경우 수, 그는 헤이, 스포츠 복권을 구입하기로 결정! ! "레드 A는 스페이드, 왕, 왕, 사각형 조각 5의 3", "오 나의 하나님! " 직선 ... LL의 행복하지 않다, 그는 생각 \ 에이미는 임의의 숫자로 볼 수 있습니다 결정하고, A, J는 11이고, 1로 간주 Q는 K 13 12이다. 5 개 개의 카드 위는 "1,2,3,4,5"(각각 4로 볼 킹 사이즈, 2), "그래서 럭키!"가 될 수 있습니다 . LL 스포츠 복권 친구를 구입하기로 결정했다. 지금, 나는 카드의 조각을 사용하도록 요청 위의 절차를 시뮬레이션하고 우리에게 어떻게 LL 행운, 카드가, 그렇지 않으면 출력 거짓이 출력됩니다 true로 직선으로 구성 할 수있는 경우. 편의를 위해, 당신은 킹 사이즈 생각할 수는 0입니다.

사고

수가 제 번호 4 개의 0이면 0 수단 범용이 문제를 들어, 그 차이는 더 이상 4 이하인 없으면 번호 0, 나머지 두 개에 대해, 세 개의 경우, 조건을 충족시키는 것은 없다 주어진 세 번째를 위해 우리는 먼저 정렬 한 최대 및 최소 값으로 더 이상 4 배 이상, 모두가 우리의 요구 조건을 충족시킬 수 있도록하는 것이 충족되지 않습니다. 숫자 0이 0 인 경우는 횡단 통과를 상기 차이 값이 1인지 여부를 질의 두 진행한다.

코드

  public boolean isContinuous(int [] num) {
        if(num.length==0)
            return false;
        Arrays.sort(num);
        if(num[3]==0) return true;
        if(num[2]==0){
            if(1<=num[4]-num[3]&&num[4]-num[3]<=4)
                return true;
         return false;
        }
        if(num[1]==0){
            if(1<=num[4]-num[2]&&num[4]-num[2]<=4)
                return true;
            return false;
        }
        if(num[0]==0){
            if(1<=num[4]-num[1]&&num[4]-num[1]<=4)
                return true;
            return false;
        }
 
        for(int i=0;i<4;i++)
            if(num[i]+1!=num[i+1])
                return false;
       return true;
         
    }
게시 68 개 원래 기사 · 원의 찬양 (39) · 전망 5020

추천

출처blog.csdn.net/weixin_44015043/article/details/105392144