【2022-06-05-第296场单周赛】
总结
寄!
Q1. 极大极小游戏
数据量小,模拟。
class Solution { public: int minMaxGame(vector<int>& a) { vector<int> temp; if(a.size() == 1) return a[0]; while(a.size() > 3){ for(int i = 0; i < a.size(); i += 4){ temp.push_back(min(a[i], a[i + 1])); temp.push_back(max(a[i + 2], a[i + 3])); } a.clear(); a = temp; temp.clear(); } return min(a[0], a[1]); } };
Q2.划分数组使最大差为K
直接排序遍历好了,结果写了个二分,还写出bug,麻了。
class Solution { public: int partitionArray(vector<int>& a, int k) { int n = a.size(); sort(a.begin(), a.end()); int t = 0, pre = a[0]; for(int i = 0; i < n; ++i){ if(a[i] - pre > k){ ++t; pre = a[i]; } } return t + 1; } };
Q3.替换数组中的元素
哈希记录数字位置,依次修改。
class Solution { public: vector<int> arrayChange(vector<int>& a, vector<vector<int>>& op) { int n = a.size(); int h[1000010]; for(int i = 0; i < 1000010; ++i) h[i] = -1; for(int i = 0; i < n; ++i) h[a[i]] = i; for(auto &i : op){ h[i[1]] = h[i[0]]; h[i[0]] = -1; } vector<int> res(n); for(int i = 0; i < 1000010; ++i){ if(h[i] != -1) res[h[i]] = i; } return res; } };
Q4.设计一个文本编辑器
没有仔细计算数据范围带来的时间复杂度问题,所以没有想到这特别简单的模拟,捣鼓了半天双链表,码力还是有所欠缺。
class TextEditor { public: string s, r; TextEditor() { s = ""; r = ""; } void addText(string text) { s += text; } int deleteText(int k) { if(s.size() < k) k = s.size(); for(int i = 0; i < k ; ++i) s.pop_back(); return k; } string cursorLeft(int k) { if(s.size() <= k) k = s.size(); for(int i = 0; i < k; ++i){ r += s.back(); s.pop_back(); } return s.substr(max(0, (int)s.size() - 10), min(10, (int)s.size())); } string cursorRight(int k) { if(r.size() <= k) k = r.size(); for(int i = 0; i < k; ++i){ s += r.back(); r.pop_back(); } return s.substr(max(0, (int)s.size() - 10), min(10, (int)s.size())); } }; /** * Your TextEditor object will be instantiated and called as such: * TextEditor* obj = new TextEditor(); * obj->addText(text); * int param_2 = obj->deleteText(k); * string param_3 = obj->cursorLeft(k); * string param_4 = obj->cursorRight(k); */
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人