【leetcode周赛记录】第291场周赛记录
赛后个人排名
赛题分析总结
class Solution { public: // 模拟即可 string removeDigit(string number, char digit) { vector<string> unSet; for(int i{ };i<number.size();++i){ if(number[i] == digit){ string temp = number; temp.erase(temp.begin()+i); unSet.push_back(temp); } } sort(unSet.begin(),unSet.end()); int n = unSet.size(); return unSet[n-1]; } };
class Solution { public: // 双指针、滑动窗口问题 int minimumCardPickup(vector<int>& cards) { int result{ INT_MAX}; unordered_map<int,int> unMap; unMap[cards[0]]++; int left{ },right{ 1}; for(right = 1;right < cards.size();++right){ unMap[cards[right]]++; while(unMap[cards[right]] == 2){ result = min(right - left + 1,result); unMap[cards[left++]]--; } } return result == INT_MAX ? -1 : result; } };
class Solution { public: // 比赛过程中认为这是一道回溯解子集题目,解不出来 // 实际是暴力模拟+哈希表去重,是我想太多 int countDistinct(vector<int>& nums, int k, int p) { set<vector<int>> s; vector<int> v; for(int i{ };i<nums.size();++i){ v.clear(); int count{ }; for(int j = i;j<nums.size();++j){ v.push_back(nums[j]); if(nums[j] %p == 0){ count++; if(count > k) break; } s.insert(v); } } return s.size(); } };
第四题,直接忽视,嘿嘿
反思总结
个人情况
第26次参加leetcode竞赛;
总计得到过6次12分,11次7分,9次3分;
后续改进
- 回溯的子集问题复习以及暴力模拟+哈希表去重
上一篇:
92天倒计时,蓝桥杯省赛备赛攻略来啦~
下一篇:
7年开发经验面试还不是在这栽了