846. Hand of Straights

 1 class Solution {
 2     public boolean isNStraightHand(int[] hand, int W) {
 3         if(W == 1) return true;
 4         Arrays.sort(hand);
 5         int i = 0, j = 0;
 6         while(i < hand.length){  //可以到最后 因为 == -1的话就会i++
 7             j= 1;
 8             int count = 0;
 9             if(hand[i] == -1){
10                 i++;
11             }else{
12                 int prev = hand[i];  //prev写在 = -1 前面
13                 hand[i] = -1;
14                 count++;
15                 while(i+j < hand.length && count < W){
16                     if(hand[i + j] == prev + 1){
17                         prev = hand[i + j];
18                         hand[i + j] = -1;
19                         count++;
20                         j++;
21                     }else if(hand[i + j] == prev || hand[i + j] == -1){
22                         j++;
23                     }else{
24                         return false;
25                     }
26                 }
27                 if(count < W) return false; //注意要是count<W 就要return false
28                 i++;
29             }
30         }
31         return true;
32         
33     }
34 }

 

posted @ 2018-10-18 14:17  jasoncool1  阅读(111)  评论(0编辑  收藏  举报