力扣 第 87 场双周赛 ---心态爆炸场
第 87 场双周赛
T1 — 模拟
class Solution {public:int q[13] = {0,31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};int get(string s){int m = stoi(s.substr(0,2));int d = stoi(s.substr(3,2));int res = 0;for(int i = 0; i < m; i ++) res += q[i];return res + d;}int countDaysTogether(string a, string b, string c, string d) {int s1 = get(a);int s2 = get(b);int s3 = get(c);int s4 = get(d);return max(0, min(s2, s4) - max(s3, s1) + 1);}
};
T2 — 贪心
class Solution {public:int matchPlayersAndTrainers(vector<int>& a, vector<int>& b) {sort(a.begin(), a.end());sort(b.begin(), b.end());int res = 0, j = 0;for(int i = 0; i < b.size(); i ++){if(j >= a.size()) break;if(a[j] <= b[i] && j < a.size()) j++, res ++;}return res;}
};
T3 — 位运算贪心 / 线段树 + 二分
位运算贪心
class Solution {public:vector<int> smallestSubarrays(vector<int>& nums) {int n = nums.size();vector<int> p(30, n);vector<int> res(n);for(int i = n - 1; i >= 0; i --){int t = i;for(int j = 0; j < 30; j ++){if(nums[i] >> j & 1) p[j] = i;else if(p[j] != n) t = max(t, p[j]); }res[i] = t - i + 1;}return res;}
};
线段树 + 二分
class Solution {public:int w[100010];struct node{int l,r;int sum;}tr[400010];void pushup(int u){tr[u].sum = tr[u << 1].sum | tr[u << 1 | 1].sum;}void build(int u,int l,int r){if(l==r)tr[u]={l,r,w[l]};else{tr[u]={l,r};int mid=l+r>>1;build(u<<1,l,mid);build(u<<1|1,mid+1,r);pushup(u);}}int query(int u,int l,int r){if(tr[u].l>=l&&tr[u].r<=r)return tr[u].sum;else{int mid=tr[u].l+tr[u].r>>1;if(r<=mid)return query(u<<1,l,r);else if(l>mid)return query(u<<1|1,l,r);else{int left=query(u<<1,l,r);int right=query(u<<1|1,l,r);return left | right;}}}vector<int> smallestSubarrays(vector<int>& nums) {vector<int>res;int n = nums.size();for(int i = 0; i < nums.size(); i ++)w[i + 1] = nums[i];build(1,1,n);for(int i = 1; i <= n; i ++){int maxv = query(1, i, n);//cout << maxv << ' ';int l = i, r = n;while(l < r){int mid = l + r >> 1;if(query(1, i, mid) < maxv) l = mid + 1;else r = mid;}res.push_back(r - i + 1);}return res;}
};
T4 — 贪心
class Solution {public:long long minimumMoney(vector<vector<int>>& q) {long long res = 0;long long sum = 0;for(auto &p : q){int a = p[0], b = p[1];if(a > b) sum += a - b;}for(auto &p : q){int a = p[0], b = p[1];long long s = sum;if(a > b) s -= a - b;res = max(res, s + a);}return res;}
};
力扣 第 87 场双周赛 ---心态爆炸场相关推荐
- 20211201:力扣第268周双周赛(上)
力扣第268周双周赛(上) 题目 思路与算法 代码实现 写在最后 题目 两栋颜色不同且距离最远的房子 给植物浇水 思路与算法 双指针遍历即可,维护那个索引最大差值即可. 模拟题,正常情况需要每次走一步 ...
- 20210119:力扣第42周双周赛(下)
力扣第42周双周赛(下) 题目 思路与算法 代码实现 写在最后 题目 修改后的最大二进制字符串 得到连续 K 个 1 的最少相邻交换次数 思路与算法 修改后的最大二进制字符串 这道题的思路很简单,交换 ...
- 20210101:力扣第42周双周赛(上)
力扣第42周双周赛(上) 题目 思路与算法 代码实现 写在最后 题目 无法吃午餐的学生数量 平均等待时间 思路与算法 无法吃午餐的学生数量 本题直接暴力模拟也没问题,但是这应该不是题目的本意,我们可以 ...
- 20200827:2020力扣第33周双周赛题解
2020力扣第33周双周赛题解 题目一 示例 解题思路与代码实现 题目二 示例 解题思路与代码实现 题目三 解题思路与代码实现 题目四 示例 解题思路与代码实现 写在最后 题目一 题目一:千位分隔数 ...
- 20200727:力扣第31周双周赛题解
力扣第31周双周赛题解 题目一:在区间范围内统计奇数数目 给你两个非负整数low和high,请你返回low和high之间(包含二者)奇数的数目 0 <= low <= high <= ...
- 20220219:力扣第72场双周赛题解
力扣第72场双周赛 题目 思路与算法 代码实现 写在最后 题目 统计数组中相等且可以被整除的数对 找到和为给定整数的三个连续整数 拆分成最多数目的偶整数之和 统计数组中好三元组数目 思路与算法 前三题 ...
- 20210530:力扣第53场双周赛题解
力扣第53场双周赛题解 题目 思路与算法 代码实现 写在最后 题目 长度为三且各字符不同的子字符串 数组中最大数对和的最小值 矩阵中最大的三个菱形和 思路与算法 长度为三且各字符不同的子字符串:遍历查 ...
- 20201023:力扣第37场双周赛(上)
力扣第37场双周赛(上) 题目 思路与算法 代码实现 写在最后 题目 删除某些元素后的数组均值 网络信号最好的坐标 思路与算法 第二题直接暴力就可以了,计算每个点的所有偏移量存入list,即以(0,0 ...
- 以赛促练-力扣第85场双周赛以及第307场周赛
文章目录 第85场双周赛 T3.字母移位II T4.删除操作后的最大子段和 第307场周赛 T2.最大回文数字 T3.感染二叉树需要的总时间 T4.找出数组的第K大和 第85场双周赛 T1直接暴力枚举 ...
最新文章
- linux 查看目录挂载的ip,Linux挂载IPSAN和FCSAN操作,Linux挂载NFS文件系统
- java 数组json_如何在Java中创建JSON数组
- 代码规范之eslint+prettier实践
- Python中的if __name__ == ‘__main__‘
- RTP/RTSP/RTCP 协议详解
- 前端lvs访问多台nginx代理服务时出现404错误的处理
- 【学生选课系统经典】C#与SQLSERVER连接:Windows应用工程案例
- ClickHouse表引擎
- 单目视觉里程计 mono vo
- mac地址修改_Mac 地址是什么?Mac 地址的修改及妙用!
- github随时同步代码_原来用IntelliJ IDEA操作GitHub这么方便啊
- 如何建立数据平台?看上市公司的选择!
- mysql job status_检查SQL Server Job状态
- Spring IOC基础使用
- java hdfs ha_hadoop2.x hdfs完全分布式 HA 搭建
- 最大公约数与最小公倍数
- 安装CentOS找不到硬盘,无法分区,No disks selected
- Centos 6.5安装最新版谷歌浏览器-Chrome
- android积分墙sdk,乐点 Android SDK 积分墙开发者文档
- 阿里云香港服务器配置选择帮助文档(超详细)