随笔 - 40  文章 - 0  评论 - 0  阅读 - 1190

【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);
*/
posted on   damnglamour  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示