【leetcode周赛记录】第294场周赛记录
赛后个人排名
赛题分析总结
第296场周赛
2293.极大极小游戏
class Solution {
public:
int minMaxGame(vector<int>& nums) {
int n = nums.size();
vector<int> newVector = nums;
while(n > 1){
vector<int> tmp = newVector;
newVector.clear();
newVector.resize(n/2);
for(int i{};i<n/2;i++){
if((i+1)%2 == 0){
newVector[i] = max(tmp[i*2],tmp[i*2+1]);
}else{
newVector[i] = min(tmp[i*2],tmp[i*2+1]);
}
}
n = n/2;
}
return newVector[0];
}
};
2294.划分数组使最大差为K
class Solution {
public:
// 贪心求解
int partitionArray(vector<int>& nums, int k) {
int n = nums.size();
sort(nums.begin(),nums.end());
int result{};
int i{};
while(i < n){
int j = i+1;
for(;j<n;++j){
if(nums[j]-nums[i] > k) break;
}
i = j;
result++;
}
return result;
}
};
2295.替换数组中的元素
class Solution {
public:
// hash计数求解
vector<int> arrayChange(vector<int>& nums, vector<vector<int>>& operations) {
int m = operations.size();
unordered_map<int,int> unMap;
for(int i{};i<nums.size();++i){
unMap[nums[i]] = i;
}
for(int i{};i<m;++i){
int m1 = operations[i][0];
int m2 = operations[i][1];
int index = unMap[m1];
nums[index] = m2;
unMap[m2] = index;
}
return nums;
}
};
2296.设计一个文本编辑器
第四题暂不考虑
反思总结
个人情况
第31次参加leetcode竞赛;
总计得到过5次12分,1次8分,15次7分,10次3分;
后续改进
- 贪心的专项复习、训练以及总结系统训练,总结