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 }