# include <iostream>
using namespace std;
struct Node{
int val, depth;
Node *left, *right;
Node(int v, int h){
val = v, depth = h;
left = right = nullptr;
}
};
bool stric_tree(Node *node){
if(node == nullptr || (node->left == nullptr && node->right == nullptr))
return true;
if(node->left == nullptr || node->right == nullptr)
return false;
return stric_tree(node->left) && stric_tree(node->right);
}
void DFS(Node *node){
if(node == nullptr)
return;
DFS(node->left);
cout<<node->val<<' ';
DFS(node->right);
}
int main(){
int N,n;
Node *root, *cur;
int height = 1;
cin>>N>>n;
root = new Node(n,1);
while(--N){
cin>>n;
cur = root;
while(true){
if(n > cur->val){
if (cur->right == nullptr){
cur->right = new Node(n,cur->depth+1);
height = max(height,cur->depth+1);
break;
}
cur = cur->right;
}
else{
if(cur->left == nullptr){
cur->left = new Node(n,cur->depth+1);
height = max(height,cur->depth+1);
break;
}
cur = cur->left;
}
}
}
cout<<(stric_tree(root) ? "True" : "False")<<' '<<height<<'\n';
}
C. 完美平方數 #include <iostream> #include <math.h> using namespace std; int numSquares(int n); int main() { int num, ans;
Jan 27, 2022E. 鐵路 本題源自於Onling Judge:514 - Rails 題目目標在於給定出站順序的前提下,利用已知入站順序1~N, 確定是否仍能夠以目標出站順序離開。 有一個簡單的想法,我們利用queue的特性來維護出站順序、 利用stack的特性來維護入站順序, 並依次比較它們的front/top是否相同,如果相同就安排出站(pop)。
Jan 27, 2022C. 組合 #include<bits/stdc++.h> using namespace std; vector<int> a; bool first=true,f=true; fstream input,output; void find(int g,vector<int> &can,int p){ if(!g){ if(!first){
Sep 19, 2021D. Flood Fill # include <bits/stdc++.h> using namespace std; int m[102][102]; struct Fill{ int x,y,t; };
Sep 16, 2021or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up