leetcode周赛
ChasingTheFreeWind
这个作者很懒,什么都没留下…
展开
-
LeetCode 228场周赛第四题 最接近目标值的子序列和
题目链接dfs枚举所有子序列和一个长度为n的数组的所有子序列和的个数为2^n对于每一个元素,有选/不选两种情况由于问题给的数组长度最大为40,如果直接对整个数组求所有子序列和则最大时间复杂度级别达到2^40,于是可以将问题转换为求左半边和右半边数组的所有子序列和。然后对左半数组从小到大排序,右半数组从大到小排序,最后用双指针技巧解决问题。代码class Solution {public: vector<int> left, right; int cnt1 = 0;原创 2021-02-07 16:27:00 · 187 阅读 · 0 评论 -
LeetCode 214场周赛(2020/11/01)
1. 能否连接形成数组哈希表其实比赛时第一题还想了好一会儿。其实这题思路很简单,用一个哈希表保存一维数组各个数字的位置。然后遍历二维数组pieces,然后对于pieces的每一个数组,判断该数组的值是否在一维数组中,是否在一维数组的位置是连续的即可。class Solution {public: bool canFormArray(vector<int>& arr, vector<vector<int>>& pieces) {原创 2020-11-01 21:07:31 · 238 阅读 · 1 评论 -
LeetCode第212场周赛(2020/10/25)
前两题略3. 最小体力消耗路径参考链接dijkstra优化#define INF 0x3f3f3f3fstruct Dist{ int x,y,z; Dist(int _x, int _y, int _z):x(_x), y(_y), z(_z){} bool operator < (const Dist& A) const { return z > A.z; } };class Solution {public:原创 2020-10-25 15:28:53 · 131 阅读 · 0 评论 -
LeetCode第209场周赛(2020/10/04)
1. 特殊数组的特征值思路懒得思考,直接暴力代码class Solution {public: int specialArray(vector<int>& nums) { for(int i=1;i<1010;i++) { int cnt = 0; for(int j=0;j<nums.size();j++) { if(nu原创 2020-10-04 20:50:38 · 114 阅读 · 0 评论 -
LeetCode第207场周赛(2020/09/27)
1.重新排列单词间的空格代码class Solution {public: string reorderSpaces(string text) { int N = text.length(); int cnt = 0; for(int i=0;i<N;i++) { if(text[i]==' ') cnt++; } istringst原创 2020-09-27 11:59:03 · 77 阅读 · 0 评论 -
LeetCode第206场周赛(2020/09/13)
1. 二进制矩阵中的特殊位置代码class Solution {public: int numSpecial(vector<vector<int>>& mat) { int N = mat.size(); int M = mat[0].size(); vector<int> sumi(N); vector<int> sumj(M); for(int i=0原创 2020-09-13 20:49:12 · 128 阅读 · 0 评论 -
LeetCode第205场周赛(2020/09/06)
1. 替换所有的问号代码1class Solution {public: string modifyString(string s) { int N = s.length(); if(s[0]=='?') { for(int p = 'a'; p<='z'; p++) { if(s[1]!=p) {原创 2020-09-06 23:36:22 · 120 阅读 · 0 评论 -
leetcode 第204场周赛 (2020/08/30)
1.重复至少k次且长度为M的模式class Solution {public: bool containsPattern(vector<int>& arr, int m, int k) { int N = arr.size(); for(int i = 0; i + k * m <= N; i++) { bool flag = true; for(int j = i; j原创 2020-08-30 21:25:45 · 93 阅读 · 0 评论 -
leetcode 第201场周赛 (2020/08/09)
1. 整理字符串思路代码1暴力class Solution {public: string makeGood(string s) { int N = s.length(); string ans = s; while(1) { N = ans.length(); string tmp = ""; bool flag = false;原创 2020-08-09 21:20:56 · 163 阅读 · 0 评论 -
leetcode 周赛(2020/08/02)
可以说本次周赛是最近几次最最最简单的了。。。但是依然表现不佳,写的时候甚至感觉手有些生疏了。算法思路都是有的,但是总是没有想得很清晰完善,于是就是“答案错误”。1.统计好三元组暴力代码class Solution {public: int countGoodTriplets(vector<int>& arr, int a, int b, int c) { int N = arr.size(); int ans = 0;原创 2020-08-02 21:32:14 · 101 阅读 · 0 评论 -
leetcode 周赛 (2020/07/26)
1. 重新排列字符串class Solution {public: string restoreString(string s, vector<int>& indices) { map<int,int> pos; string str; int n = indices.size(); for(int i=0;i<n;i++) { pos[indices[原创 2020-07-26 12:47:04 · 98 阅读 · 0 评论 -
leetcode 周赛(2020/07/19)
微软专场,较为困难1. 换酒问题class Solution {public: int numWaterBottles(int numBottles, int numExchange) { int remains = numBottles; int ans = remains; while(remains>=numExchange) { //ans += remains; i原创 2020-07-26 12:34:58 · 122 阅读 · 0 评论 -
leetcode周赛 (2020/07/05)
1. 判断能否形成等差数列class Solution {public: bool canMakeArithmeticProgression(vector<int>& arr) { if(arr.size()<=1) return true; sort(arr.begin(),arr.end()); int diff = arr[1] - arr[0]; for(int i=1;i原创 2020-07-16 23:52:31 · 79 阅读 · 0 评论 -
leetcode周赛 (2020/07/12)
1. 好数对的数目思路直接暴力代码class Solution {public: int numIdenticalPairs(vector<int>& nums) { int N = nums.size(); if(N<1) return 0; int ans = 0; for(int i=0;i<N;i++) { for(int原创 2020-07-12 14:21:00 · 109 阅读 · 0 评论 -
leetcode周赛 (2020/06/28)
5448.判断路径是否相交集合查找class Solution {public: bool isPathCrossing(string path) { set<pair<int,int>> s; int curx = 0; int cury = 0; s.insert(make_pair(curx,cury)); for(int i=0;i<path.length();i++)原创 2020-06-28 15:39:37 · 123 阅读 · 0 评论 -
leetcode周赛 (2020/06/21)
一直忘了更新周赛挺难先更钱两题1. 数组异或操作class Solution {public: int xorOperation(int n, int start) { int ans = 0; for(int i=0;i<n;i++) { ans ^= start+2*i; } return ans; }};2. 保证文件名唯一class Solution {原创 2020-06-23 16:15:57 · 147 阅读 · 0 评论 -
leetcode周赛 (2020/06/15)
1. 一位数组的动态和class Solution {public: vector<int> runningSum(vector<int>& nums) { vector<int> sum; int N = nums.size(); sum.resize(N); sum[0] = nums[0]; for(int i=1;i<N;i++) {原创 2020-06-15 01:11:47 · 143 阅读 · 0 评论 -
leetcode周赛 2020/06/07
这周周赛发挥不佳1. 重新排列数组class Solution {public: vector<int> shuffle(vector<int>& nums, int n) { vector<int> ans; for(int i=0;i<n;i++) { ans.push_back(nums[i]); ans.push_back(nums[i+n]原创 2020-06-07 13:03:21 · 130 阅读 · 0 评论 -
leetcode周赛 (2020/05/31)
复习期末了,这周周赛水一水1. 数组中两元素的最大乘积代码class Solution {public: int maxProduct(vector<int>& nums) { int N = nums.size(); sort(nums.begin(),nums.end()); return (nums[N-1]-1)*(nums[N-2]-1); }};2. 切割后面积最大的蛋糕代码const in原创 2020-05-31 13:39:33 · 174 阅读 · 0 评论 -
leetcode周赛 (2020/05/24)
纪念第一次"AK"(12:02 AK。。。最后一题太蠢了 这么简单个动态规划,找bug找了很久)leetcode最近周赛好像越来越简单了啊,最后一题的动态规划也不难。1. 检查单词是否为句中其他单词的前缀代码class Solution {public: int isPrefixOfWord(string sentence, string searchWord) { istringstream ss(sentence); string word;原创 2020-05-24 12:17:38 · 255 阅读 · 0 评论 -
leetcode周赛 (2020/05/17)
这次周赛的题比较暴力,没有涉及什么算法,最后一个题是个数学题。1. 在既定时间做作业的学生人数思路暴力即可代码2. 重新排列句子中的单词思路排序即可代码class Solution {public: static bool cmp(pair<string,int> p1,pair<string,int> p2) { if(p1.first.length()==p2.first.length()) retur原创 2020-05-17 16:03:08 · 249 阅读 · 0 评论 -
leetcode周赛 (2020/05/10)
1. 用栈操作构建数组class Solution {public: vector<string> buildArray(vector<int>& target, int n) { stack<int> st; vector<string> ans; int now = 1; int ind = 0; int N = target.size();原创 2020-05-10 13:03:06 · 222 阅读 · 0 评论 -
leetcode周赛(2020/05/03)
class Solution {public: string destCity(vector<vector<string>>& paths) { map<string, string> graph; for(int i=0;i<paths.size();i++) { ...原创 2020-05-03 13:45:40 · 163 阅读 · 0 评论 -
leetcode 周赛补题(2020/4/19)
第一次参加leetcode竞赛,好吧我是真菜数青蛙题目链接想半天的题竟然这么简单??class Solution {public: int minNumberOfFrogs(string s) { int c=0,r=0,o=0,a=0,k=0; int maxi = 0; for(char x:s) { ...原创 2020-04-20 21:22:06 · 318 阅读 · 2 评论 -
leetcode周赛(2020/04/26)
5392 分割字符代码简单题class Solution {public: int maxScore(string s) { int N = s.length(); vector<int> dp0,dp1; dp0.resize(N); dp1.resize(N); for(int i =...原创 2020-04-26 16:07:13 · 113 阅读 · 0 评论