利用移位等操作来判断是否有相同的数字
扑克牌顺子
public boolean isContinuous(int [] numbers) {
int len=numbers.length;
if(len!= 5) return false;
int max=-1;
int min=14;
int flag=0;
for(int j=0;j<len;j++){
int i=numbers[j];
if(i>14||i<0) return false;
if(i==0) continue;
if(((flag>>i)&1)==1)return false;
flag|=(1<<i);
if(max<i) max=i;
if(min>i) min=i;
if(max-min>=5) return false;
}
return true;
}
以上循环中判断 数组元素是否相同(适用无序)
if(((flag>>i)&1)==1)return false;flag|=(1<<i);
ps: 2016.7.25 第一次加入