C++
#include <array> #include<bits/stdc++.h> using namespace std; class Set { private: array<int, 100000> s; int len=0; public: void insertValue(int x) { //TODO 实现插入逻辑 if (!xInSet(x)) { if (!len) { s[0] = x; len++; return; } int k=len-1; for (; k>-1 && s[k] > x; k--) { s[k+1] = s[k]; } s[k+1] = x; len++; } } void eraseValue(int x) { //TODO 实现删除逻辑 int k=0; for (; k<len; k++) if (s[k]==x) break; if (k==len) return; for (; k<len-1; k++) s[k]=s[k+1]; len--; } int xInSet(int x) { //TODO 实现存在性检查 int k=0; for (; k<len; k++) if (s[k]==x) return 1; return 0; } int sizeOfSet() { //TODO 返回集合大小 return len; } int getPre(int x) { //TODO 实现找前驱 - 可以是集合最后一个元素 int f = -1; for (int k=0; k<len && s[k]<x; k++) { f=s[k]; } return f; } int getBack(int x) { //TODO 实现找后继 - 可以是集合第一个元素 int f = -1; for (int k=len-1; k>-1 && s[k]>x; k--) { f=s[k]; } return f; } }; int main() { int q, op, x; cin >> q; Set M; while (q--) { cin >> op; if (op == 1) { cin >> x; M.insertValue(x); } if (op == 2) { cin >> x; M.eraseValue(x); } if (op == 3) { cin >> x; if (M.xInSet(x)) { cout << "YES\n"; } else { cout << "NO\n"; } } if (op == 4) { cout << M.sizeOfSet() << endl; } if (op == 5) { cin >> x; cout << M.getPre(x) << endl; } if (op == 6) { cin >> x; cout << M.getBack(x) << endl; } } return 0; }