这也是我的第一场周赛。。。 好烦啊,自己连二叉树基本操作都忘了,只暴力的A了一题。调程序的时候,实验室还有人一直BBB,真烦。(2006/4022 😭)
先把A的第一题代码放上
class Solution {
public:
int specialArray(vector<int>& nums) {
int len = nums.size();
int i = 0;
while( i <= len ){
int count = 0;
for( int j = 0; j < len ; j++){
if( nums[j] >= i ) count ++;
if(count > i) break;
}
if( count == i ) return i;
else i ++;
}
return -1;
}
};
第二题代码(都是暴力破解。。。 利用树的层次遍历,每次判断一层是否符合要求)
class Solution {
public:
bool isEvenOddTree(TreeNode* root) {
if (root == NULL) return false;
queue<TreeNode *> CurQueue;
CurQueue.push(root);
int isEvenOdd = 0;
while ( ! CurQueue.empty()) {
int i = 1;
vector<int> judge = {};
int CurSize = CurQueue.size();
while (i <= CurSize) {
TreeNode *CurElement = CurQueue.front();
if (CurElement->left != NULL) CurQueue.push(CurElement->left);
if (CurElement->right != NULL) CurQueue.push(CurElement->right);
CurQueue.pop();
judge.push_back( CurElement->val );
i++;
}
if (isEvenOdd == 0) {
//必须是奇数 而且递增
for (int k = 0; k < judge.size(); k++) {
if (judge[k] % 2 == 0) return false;
if ( ++k < judge.size() ){
if(judge[k] <= judge[--k]) return false;
}
}
} else {
for (int k = 0; k < judge.size(); k++) {
if (judge[k] % 2 != 0) return false;
if (++k < judge.size()) {
if (judge[k] >= judge[--k]) return false;
}
}
}
if(isEvenOdd == 0) isEvenOdd = 1;
else isEvenOdd = 0;
}
return true;
}
};
我去,第二题就死在那个严格递增和递减上面,不能等于。。。不然7分就339名了。。。 看来leetcode周赛还是不会让你爆0的。。。