如题所述
解é¢æè·¯ï¼
åªè¦æ»¡è¶³æ¡ä»¶
1ï¼æ°ç»çé¿åº¦ä¸º5ï¼
2ï¼æ°ç»ä¸çæ大å¼åå»æå°å¼å°äº5ï¼æ大å¼ãæå°å¼ä¸å0ï¼ï¼
3ï¼é¤0å¤æ²¡æéå¤çæ°åã
è¿ä¸ªæ°ç»å°±æ¯è¿ç»çï¼å³å¯ç»æ顺åã
代ç å¦ä¸ï¼
class Solution {
public:
bool IsContinuous( vector<int> numbers ) {
if(numbers.size() != 5)
return false;
int min = 14; // 设å®æå°å¼çåå§å¼
int max = -1; // 设å®æ大å¼çåå§å¼
int flag = 0; // flagç¨äºå¤å®æ°ç»ä¸æ¯å¦æéå¤å¼
for(int i = 0; i < 5; i++){
// æ ¹æ®é¢æï¼æ°åçèå´ä¸º1-13ï¼è¥ä¸å¨æ¤èå´åè¿åfalse
if(numbers[i] < 0 || numbers[i] > 13)
return false;
if(numbers[i] == 0)
continue;
// å¤ææ°åæ¯å¦éå¤
if(((1 << numbers[i]) & flag) > 0)
return false;
flag |= (1 << numbers[i]);
if(numbers[i] > max)
max = numbers[i];
if(numbers[i] < min)
min = numbers[i];
// å¤ææ大å¼ä¸æå°å¼çå·®æ¯å¦å°äº5
if(max - min > 4)
return false;
}
return true;
}
};
æ们ç¨å°äºä½è¿ç®æ¥å¤ææ°ç»ä¸æ¯å¦åå¨éå¤å¼ï¼å®çåçç®åä¸å®ç¨ï¼
å 为æ们çæ°åèå´ä¸º1-13ï¼ç¨æ¯ä¸ä¸ªbit对åºä¸ä¸ªæ°åï¼å¦æåºç°è¿ï¼é£ä¹flagä¸è¿ä¸ªbit就为1ï¼ä¸ç¶å°±æ¯0ï¼ä¸ç¨ä¸ä¸ª32bitçintå足å¤å®¹çº³ä¸ææä½ã
åªè¦æ»¡è¶³æ¡ä»¶
1ï¼æ°ç»çé¿åº¦ä¸º5ï¼
2ï¼æ°ç»ä¸çæ大å¼åå»æå°å¼å°äº5ï¼æ大å¼ãæå°å¼ä¸å0ï¼ï¼
3ï¼é¤0å¤æ²¡æéå¤çæ°åã
è¿ä¸ªæ°ç»å°±æ¯è¿ç»çï¼å³å¯ç»æ顺åã
代ç å¦ä¸ï¼
class Solution {
public:
bool IsContinuous( vector<int> numbers ) {
if(numbers.size() != 5)
return false;
int min = 14; // 设å®æå°å¼çåå§å¼
int max = -1; // 设å®æ大å¼çåå§å¼
int flag = 0; // flagç¨äºå¤å®æ°ç»ä¸æ¯å¦æéå¤å¼
for(int i = 0; i < 5; i++){
// æ ¹æ®é¢æï¼æ°åçèå´ä¸º1-13ï¼è¥ä¸å¨æ¤èå´åè¿åfalse
if(numbers[i] < 0 || numbers[i] > 13)
return false;
if(numbers[i] == 0)
continue;
// å¤ææ°åæ¯å¦éå¤
if(((1 << numbers[i]) & flag) > 0)
return false;
flag |= (1 << numbers[i]);
if(numbers[i] > max)
max = numbers[i];
if(numbers[i] < min)
min = numbers[i];
// å¤ææ大å¼ä¸æå°å¼çå·®æ¯å¦å°äº5
if(max - min > 4)
return false;
}
return true;
}
};
æ们ç¨å°äºä½è¿ç®æ¥å¤ææ°ç»ä¸æ¯å¦åå¨éå¤å¼ï¼å®çåçç®åä¸å®ç¨ï¼
å 为æ们çæ°åèå´ä¸º1-13ï¼ç¨æ¯ä¸ä¸ªbit对åºä¸ä¸ªæ°åï¼å¦æåºç°è¿ï¼é£ä¹flagä¸è¿ä¸ªbit就为1ï¼ä¸ç¶å°±æ¯0ï¼ä¸ç¨ä¸ä¸ª32bitçintå足å¤å®¹çº³ä¸ææä½ã
温馨提示:答案为网友推荐,仅供参考