import java.util.Arrays; public class JZ45 { public boolean isContinuous(int [] numbers) { if(numbers.length != 5){ return false; } Arrays.sort(numbers); int min = 0,max = numbers[4]; int k = 0; for(int i = 0; i < 5; i++){ if(numbers[i] != 0){ min = numbers[i]; k = i; break; } } for(int i = k; i < 4; i++){ for(int j = i + 1; j < 5; j++){ if(numbers[i] == numbers[j]){ return false; } } } if((max - min) < 5){ return true; } return false; } //此题还可以使用hash思想,新建一个一维数组作为散列表,牌的值作为散列地址,牌的出现次数作为散列表存储的值。这样可以将时间复杂度姜维O(n) }
注释里的是优化的方法,优化后时间复杂度降低了,空间复杂度提高了。