LC周赛
周赛、双周赛
你别教我打游戏
直面困难,重视过程,追求结果,淡忘过去。
展开
-
LeetCode 第 212 场周赛(枚举、排序、极小化极大值(二分+搜索、贪心+并查集、最短路解法)、行列并查集)
5546. 按键持续时间最长的键 class Solution { public: int mx = 0; char ans; char slowestKey(vector<int>& rs, string s) { ans = s[0]; mx = rs[0]; for(int i=1;i<rs.size();i++){ if(rs[i]-rs[i-1]>mx || (rs[i]原创 2020-10-26 21:59:14 · 164 阅读 · 0 评论 -
LeetCode 第 211 场周赛 (哈希表、字符串(取模、枚举)、排序+最长上升子序列和、筛法求约数+并查集)
1624. 两个相同字符之间的最长子字符串 class Solution { public: int maxLengthBetweenEqualCharacters(string s) { map<char,vector<int>> mp; for(int i=0;i<s.size();i++){ char c = s[i]; mp[c].push_back(i); }原创 2020-10-25 23:26:10 · 172 阅读 · 0 评论 -
LeetCode 第 210 场周赛 (栈、图的存储、回文串、二进制枚举子集+树的直径)
5535. 括号的最大嵌套深度 class Solution { public: int maxDepth(string s) { int cnt = 0, ans = 0; for(char c:s){ if(c=='('){ cnt++; ans = max(ans,cnt); } if(c==')'){原创 2020-10-16 19:17:15 · 132 阅读 · 0 评论 -
LeetCode 第 36 场双周赛 (模拟、模拟、贪心+构造、优先队列+平衡树)
1603. 设计停车系统 很无聊 class ParkingSystem { public: int a[4]; ParkingSystem(int big, int m, int s) { a[1] = big; a[2] = m; a[3] = s; } bool addCar(int c) { if(a[c]==0) return false; a[c]--; return原创 2020-10-07 23:43:33 · 124 阅读 · 0 评论 -
LeetCode 第 208 场周赛(模拟、模拟、模拟多叉树+树的先序遍历、回溯| 状态压缩)
1598. 文件夹操作日志搜集器 class Solution { public: int minOperations(vector<string>& logs) { int ans = 0; for(string & s:logs){ if(s[0]=='.' && s[1]=='.'){ if(ans) ans--; }else if(s[0原创 2020-09-28 20:01:09 · 106 阅读 · 0 评论 -
LeetCode 第 35 场双周赛(前缀和、差分+贪心、哈希表+同余、模拟+拓扑排序)
1588. 所有奇数长度子数组的和 class Solution { public: int sumOddLengthSubarrays(vector<int>& a) { int n = a.size(); int ans = 0; vector<int> s(n,0); s[0] = a[0]; for(int i=1;i<n;i++) s[i] = s[i-1]+a[i];原创 2020-09-25 17:17:46 · 111 阅读 · 0 评论 -
LeetCode 第 206 场周赛 (统计、暴力、最小生成树、冒泡+贪心)
5511. 二进制矩阵中的特殊位置 class Solution { public: int numSpecial(vector<vector<int>>& g) { int ans = 0, m = g.size(), n = g[0].size(); for(int i=0;i<m;i++){ for(int j=0;j<n;j++){ int cnt = 0;原创 2020-09-13 22:43:44 · 83 阅读 · 0 评论 -
LeetCode 第 205 场周赛 (暴力、哈希表、贪心+滑动窗口、贪心+并查集(最小生成树))
1576. 替换所有的问号 class Solution { public: string modifyString(string s) { int len = s.size(); for(int i=0;i<len;i++){ if(s[i]=='?'){ for(char c='a';c<='z';c++){ if(i==0){原创 2020-09-07 15:55:23 · 109 阅读 · 0 评论 -
LeetCode 第 34 场双周赛 (矩阵、乘法原理计数、双指针、DP)
5491. 矩阵对角线元素的和 class Solution { public: int diagonalSum(vector<vector<int>>& mat) { int sum = 0, n = mat.size(); for(int i=0;i<n;i++){ sum += mat[i][i]; if(i!=n-i-1) sum += mat[i][n-i-1];原创 2020-09-07 11:02:23 · 79 阅读 · 0 评论 -
LeetCode 第 204 场周赛(模拟、前缀+奇偶性+哈希、思维+宽搜、计数原理+递归)
5499. 重复至少 K 次且长度为 M 的模式 模拟即可 class Solution { public: bool containsPattern(vector<int>& a, int m, int k) { int n = a.size(); for(int i=0;i+m*k-1<n;i++){ bool f = true; for(int j=0;j<m*k;j++){原创 2020-08-31 22:59:56 · 153 阅读 · 0 评论 -
LeetCode 第 203 场周赛 (模拟||思维、贪心、逆向思维+set、记忆化搜索 || DP套DP)
1560. 圆形赛道上经过次数最多的扇区 暴力模拟: 时间复杂度:O(m∗n)O(m*n)O(m∗n) class Solution { public: vector<int> mostVisited(int n, vector<int>& rounds) { int cnt[101] = {0}; cnt[rounds[0]-1]++; for(int i=1;i<rounds.size();i++){原创 2020-08-29 15:30:29 · 102 阅读 · 0 评论 -
LeetCode 第 33 场双周赛(模拟、思维、数位统计+贪心、DFS || 并查集)
1556. 千位分隔数 模拟 class Solution { public: string thousandSeparator(int n) { string s = to_string(n), ans; int len = s.size(),cnt = 0; for(int i=len-1;i>=0;i--,cnt++){ ans.push_back(s[i]); if((cnt+1)%3==原创 2020-08-28 02:26:51 · 81 阅读 · 0 评论 -
LeetCode 第 202 场周赛 (极小化极大二分、记忆化搜索)
1550. 存在连续三个奇数的数组 class Solution { public: bool threeConsecutiveOdds(vector<int>& a) { for(int i=2;i<a.size();i++){ if(a[i]%2 && a[i-1]%2 && a[i-2]%2){ return true; }原创 2020-08-18 18:47:58 · 127 阅读 · 0 评论 -
LeetCode 第 201 场周赛 (栈、模拟、前缀和+哈希表+DP、区间DP||记忆化搜索)
5483. 整理字符串 比赛的时候就随便写写的。 最好的想法应该就是用栈去写。 class Solution { public: string makeGood(string s) { string ans; for(int i=0;i<s.size();i++){ ans.push_back(s[i]); int n = ans.size(); if(n>=2 &&原创 2020-08-10 00:22:39 · 138 阅读 · 0 评论 -
LeetCode 第32场双周赛题解(hash表、数学思维、栈、前缀和+状态压缩+位运算)
5468. 第 k 个缺失的正整数 class Solution { public: int findKthPositive(vector<int>& arr, int k) { int vis[2001] = {0}; for(int x:arr) vis[x] = 1; int cnt = 0; for(int i=1;i<=2001;i++){ if(vis[i]==0){原创 2020-08-09 20:51:26 · 146 阅读 · 0 评论 -
LeetCode 第 200 场周赛 (模拟、贪心+冒泡排序、双指针)
文章目录 5475. 统计好三元组 class Solution { public: int countGoodTriplets(vector<int>& ar, int a, int b, int c) { int ans = 0, n = ar.size(); for(int i=0;i<n;i++){ for(int j=i+1;j<n;j++){ for(int k=j+1原创 2020-08-02 21:33:11 · 205 阅读 · 0 评论 -
LeetCode 第30场双周赛 (字符串模拟、前缀和||多路归并、思维、博弈DP)
1507. 转变日期格式 字符串处理,呵呵,我的弟弟代码,第一题就写了十分钟 class Solution { public: string reformatDate(string date) { vector<string> month = {"","Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; char* p = strtok((c原创 2020-07-23 13:51:14 · 91 阅读 · 0 评论 -
LeetCode 第29场双周赛、第 195 场周赛部分题解
1493. 删掉一个元素以后全为 1 的最长子数组 题意: 给你一个二进制数组 nums ,你需要从中删掉一个元素。 请你在删掉元素的结果数组中,返回最长的且只包含 1 的非空子数组的长度。 如果不存在这样的子数组,请返回 0 。 巧解 class Solution { public: int longestSubarray(vector<int>& a) { int ans = 0, n = a.size(); vector<int&g原创 2020-07-11 19:14:44 · 184 阅读 · 0 评论