题目描述
blablabla
样例
blablabla
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
#include<bits/stdc++.h>
using namespace std;
const int N = 520;
int q[N];
string str = "";
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode() : val(0), left(nullptr), right(nullptr) {}
TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
};
TreeNode* buildTree(int q[], int left, int right) {
if(left > right) return nullptr;
int mid = (left + right) / 2;
TreeNode* node = new TreeNode(q[mid]);
node->left = buildTree(q, left, mid - 1);
node->right = buildTree(q, mid + 1, right);
return node;
}
void Traversal(TreeNode* root, int val) {
if(root == nullptr) return ;
if(root->val == val) {
str += "Y";
return ;
}
if(root->val > val) {
str += "L";
Traversal(root->left, val);
}
else {
str += "R";
Traversal(root->right, val);
}
}
int main() {
int n;
int m;
int len = 0;
while(cin >> n)
{
q[len++] = n;
if(cin.get()=='\n') break;
}
cin >> m;
sort(q, q + len, less<int>());
TreeNode* root = buildTree(q, 0, len - 1);
cout << root->val << endl;
cout << root->left->val << endl;
cout << root->right->val << endl;
if(root->val == m) {
string s = "SY";
cout << s << endl;
return 0;
}
Traversal(root, m);
if(str[str.size() - 1] != 'Y') {
cout << "S" + str + "N" << endl;
return 0;
}
str = "S" + str;
cout << str << endl;
}