[LeetCode 1360~1363][周赛]周赛177题解
1360.日期之间隔几天
题目链接
static const auto io_speed_up = [](){ios::sync_with_stdio(false);cin.tie(0);return 0;
}();
class Solution {public:int nleap[13]={0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};int nsum[13]={0};int leap[13]={0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};int sum[13]={0};inline bool isleap(int p){return (p%4==0&&p%100!=0)||(p%400)==0;}inline int lecnt(int p){return p/4-p/100 +p/400+1;}int days(int y, int m, int d){int dy = y*365 + (y?lecnt(y-1):0);int dm = isleap(y)?sum[m-1]:nsum[m-1];return dy+dm+d;}int daysBetweenDates(string date1, string date2) {for(int i = 1; i < 13; i++)nsum[i]=nsum[i-1]+nleap[i];for(int i = 1; i < 13; i++)sum[i]=sum[i-1]+leap[i];int y1 = stoi(string(date1.begin(),date1.begin()+4));int y2 = stoi(string(date2.begin(),date2.begin()+4));int m1 = stoi(string(date1.begin()+5, date1.begin()+7));int m2 = stoi(string(date2.begin()+5, date2.begin()+7));int d1 = stoi(string(date1.begin()+8, date1.begin()+10));int d2 = stoi(string(date2.begin()+8, date2.begin()+10));return abs(days(y1,m1,d1)-days(y2, m2, d2));}
};
1361.验证二叉树
题目链接
听说这个题标算错了,直接判入度为零点的个数和入度为1点的个数就能过,可以考虑一个孤立点+若干个环的情况。
正儿八经把根搜出来,然后搜一下那棵树,判定树的同时判定整张图是否连通。
static const auto io_speed_up = [](){ios::sync_with_stdio(false);cin.tie(0);return 0;
}();
class Solution {public:deque<int>mq;bool validateBinaryTreeNodes(int n, vector<int>& leftChild, vector<int>& rightChild) {int *vis = new int[n]();bool *is = new bool[n]();for(int i = 0;i< n;i++){if(~leftChild[i])vis[leftChild[i]]++;if(~rightChild[i])vis[rightChild[i]]++;}int root = 0,cnt = 0;for(int i = 0; i < n ;i++){if(!vis[i]){root = i;break;}}if(root == n)return false;mq.emplace_back(root);while(!mq.empty()){int nw = mq.front();mq.pop_front();if(nw==-1)continue;if(is[nw])return false;is[nw]=1;cnt++;mq.emplace_back(leftChild[nw]);mq.emplace_back(rightChild[nw]);}if(cnt == n)return true;return false;}
};
- 最接近的因数
题目链接
static const auto io_speed_up = [](){ios::sync_with_stdio(false);cin.tie(0);return 0;
}();
class Solution {public:vector<int> closestDivisors(int num) {int l,r;l = r = round(sqrt(num+1));for(int i = l;i>0;i--){if((num+1)%i==0)return {i,(num+1)/i};if((num+2)%i==0)return {i,(num+2)/i};}return {0};}
};
- 形成三的最大倍数
题目链接
先填满,再去掉
static const auto io_speed_up = [](){ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);return 0;
}();
class Solution {public:string largestMultipleOfThree(vector<int>& digits) {int *buc = new int[10]();for(int p : digits){buc[p]++;}int sum = 0;for(int i = 0;i<10;i++)sum += buc[i]*i;if(sum % 3 ==2){int p = 1;for(int i = 2;i < 10&&p;i+=3){if(buc[i]){buc[i]--;p--;}}if(p++)for(int i = 1;i < 10&&p;i+=3){while(buc[i]&&p){buc[i]--;p--;}}}else if(sum %3 == 1){int p = 1;for(int i = 1;i < 10&&p;i+=3){if(buc[i]){buc[i]--;p--;}}if(p++)for(int i = 2;i < 10&&p;i+=3){while(buc[i]&&p){buc[i]--;p--;}}}if(buc[0]==digits.size())return "0";string ans = "";for(int i = 9; i >= 0; i--){ans += string(buc[i], i + '0');}return ans;}
};
[LeetCode 1360~1363][周赛]周赛177题解相关推荐
- LeetCode第 227 场周赛题解
LeetCode第 227 场周赛题解 检查数组是否经排序和轮转得到 原题链接 https://leetcode-cn.com/problems/check-if-array-is-sorted-an ...
- LeetCode 第 194 场周赛
LeetCode 第 194 场周赛 数组异或操作 思路和代码 保证文件名唯一 思路及代码 避免洪水泛滥 思路及代码 找到最小生成树里的关键边和伪关键边 思路及代码 这次周赛比以往难很多. 数组异或操 ...
- 力扣周赛310场题解
力扣周赛310场题解 前言 6176. 出现最频繁的偶数元素 6177. 子字符串的最优划分 前言 今天参加了力扣的第310场周赛,也是感觉到了这周的题的一个难度,有些题有想法,但是实际上让我去写的时 ...
- LeetCode第187场周赛(Weekly Contest 187)解题报告
差点又要掉分了,还好最后几分钟的时候,绝杀 AK.干巴爹!!! 第一题:思路 + 模拟暴力. 第二题:线性扫描. 第三题:双指针(滑动窗口) + 优先队列. 第四题:暴力每一行最小 k 个 + 优先队 ...
- LeetCode第176场周赛(Weekly Contest 176)解题报告
又是一周掉分之旅,我发现,LeetCode周赛的数据好水,所以有的时候,实在没思路,先暴力解决试试(即使分析出时间复杂度会超时),比如第二题和第三题都可以暴力通过,GG思密达. 这周主要使用了数据结构 ...
- 2018年暑假第四次周赛-图论部分题解
2018年暑假第四次周赛-图论部分题解 A.信我啊,这是签到题 这题是签到题 数据出锅,多组后来补的,后来直接删除了一整个文本.纯属意外. 出签到题难啊,本意是一道题教会17一个模型的.说没学过不该出 ...
- Acwing第72场周赛+Leetcode第314场周赛
Acwing第72场周赛 第一题:AcWing 4624. 最小值 分析:向下取整可以用到math.h头文件中的floor()函数,最后输出时套用两个min()函数求三个数的最小值即可. 代码: #i ...
- CSDN 周赛37期题解
CSDN 周赛37期题解 1.题目名称:幼稚班作业 2.题目名称:异或和 3.题目名称:大整数替换数位 4.题目名称:莫名其妙的键盘 卡个bug 小结 1.题目名称:幼稚班作业 幼稚园终于又有新的作业 ...
- Leetcode第 310 场周赛 补打
Leetcode 第310场周赛 自己赛后打了一下,记录了一下时间,大概15min A 3题,第四题是写不出来,然后学习了一天线段树(真的强). 思路: 1.排序后统计偶数的数目 2.遍历扫一遍,用直 ...
- 记LeetCode第143次周赛(Weekly Contest 143)
上午打完LeetCode第143次周赛,发现很多不常用的知识点都比较生涩了,最后一个半小时也只ac了前两题.这一次的题目相对以往还是比较简单吧,但奈何就是迟迟没有在代码上有较满意的实现.学习果然是不进 ...
最新文章
- java程序讲解_3、Java程序讲解
- Android Listview 性能优化
- [转]JS部分通用函数
- 【译文】用Spring Cloud和Docker搭建微服务平台
- uva 10098 Generating Fast(全排列)
- pytorch入门——线性回归
- 随笔小杂记(一)——更改整个文件夹内的命名
- 编程之美 1.4买书问题常数时间空间解法
- C#毕业设计——基于C#+asp.net+sqlserver的网上书店系统设计与实现(毕业论文+程序源码)——网上书店系统
- msfconsole漏洞扫描工具详解
- netty系列之:HashedWheelTimer一种定时器的高效实现
- Elasticsearch入门----terms聚合实现搜索热词统计
- 基于javaEE的超市库存管理系统
- 利用Sharepoint里面Mysite的Shared Pictures的图片做相册 [包括创建文件夹,上传文件]...
- 资深大牛带你了解源码!带你轻松理解Android-Hook机制,已开源
- 港大计算机学院副院长,中科院许榕生教授、香港大学邹锦沛博士等一行访问我校...
- 华为鸿蒙文件管理器通用版,华为文件管理器官方下载_华为文件管理器最新版下载v10.6.2.300 - 数码资源网...
- 简易个人网站的搭建--基础准备工作(一)
- 安卓开发之 在应用中使用数据库
- 局域网计算机配置扫描系统,fly42局域网计算机配置检测系统
热门文章
- java随机生成中文名、性别、手机号、住址、email
- 国内国外常用外包平台大全汇总!
- 苹果安装app的另一种方式(通过itms-services协议,不通过AppStore,直接安装IOS应用程序)
- 对应阻尼下的开环增益matlab,初识控制系统计算机仿真和辅助设计
- Windows Phone 7 日历应用的实现
- 安卓zip解压软件_破解软件之“安卓压缩包zip或rar密码破解(116位数任意破)”...
- 【服务器数据恢复】服务器raid5磁盘阵列分区丢失的数据恢复案例
- CentOS 5.5 安装 Python 2.7_老范的空间_百度空间
- python绘制人物关系图,Python来袭,教你用Neo4j构建“复联4”人物关系图谱!
- Windows + Linux 双系统 卸载 Liunx