当前位置:网站首页>LeetCode_Dec_3rd_Week
LeetCode_Dec_3rd_Week
2022-08-04 06:29:00 【KuoGavin】
December 20th : 475. 供暖器
December 21st : 1154. 一年中的第几天
December 20th : 475. 供暖器
对于每个房屋,Either use the front heater,Either use the latter,the two are close,得到距离;for all houses,Choose the largest of the above distances.
这里需要注意的是,for a house,It has heating only in the front or only in the back,This situation needs to be considered.
during the search for boundary values,Commonly used in binary search(For the bisection of the boundary,Intuitively, it is to divide the ordered sequence in half),这里stl algorithm中的upper_bound和lower_bound很好用,具体的函数签名如下:

lower_boundCorrespondingly, the first one is not less thanvalueThe iterator corresponding to the value of ,That is, greater than or equal to the left boundary of the interval,这样称为lower bound就不难理解了.

同理,upper_boundWhat is sought is not greater thanvaluethe right boundary of the interval,That is, the first greater thanvalue的值的迭代器,That is to sayupper bound.
class Solution {
public:
int findRadius(vector<int>& houses, vector<int>& heaters) {
sort(heaters.begin(), heaters.end()); //Sort the heat sink locations
int ret = 0;
for(auto house : houses) {
int cur = INT_MAX; //The minimum heating radius required for the current house
auto right = lower_bound(heaters.begin(), heaters.end(), house); //Find the corresponding radiator location on the right
if(right != heaters.end()) cur = *right - house; //If there is a radiator on the right side,Then update the heating radius
if(right != heaters.begin()) cur = min(cur, house - *(right-1)); //If there is a radiator on the left side as well
ret = max(cur, ret); //The final result takes the maximum value of the heating radius of each house
}
return ret;
}
};
December 21st : 1154. 一年中的第几天
若是dayOfYearas part of the resident process,and frequently called,可以在SolutionOpen up a prefix and array in the class,Records the date sum of the month preceding the current month,If only called occasionally,You can add it on the spot.
闰年的定义,我都记不清了,难受(摘自百度百科):
- 普通闰年:公历年份是4的倍数,且不是100的倍数的,为闰年(如2004年、2020年等就是闰年).
- 世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年(如1900年不是闰年,2000年是闰年)
class Solution {
public:
int dayOfYear(string date) {
vector<int> days = {
0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
for(int i = 1; i <= 12; ++i) days[i] += days[i-1];
int year = atoi(date.substr(0, 5).c_str());
int month = atoi(date.substr(5, 3).c_str());
int day = atoi(date.substr(8, 2).c_str());
cout << year << " " << month << " " << day << endl;
return day +
((((year % 400 == 0 && year % 100 == 0) || (year % 100 != 0 && year % 4 == 0)) && month > 2) ?
days[month-1] + 1 : days[month-1]);
}
};
边栏推荐
- 数据库的简述与常用操作指南
- yoloV5 使用——训练速度慢,加速训练
- MNIST Handwritten Digit Recognition - Building a Perceptron from Zero for Two-Classification
- MNIST handwritten digit recognition - based on Mindspore to quickly build a perceptron to achieve ten categories
- Golang环境变量设置(二)--GOMODULE&GOPROXY
- 基于PyTorch的FCN-8s语义分割模型搭建
- MNIST手写数字识别 —— 基于Mindspore快速构建感知机实现十分类
- Qt日常学习
- 浅谈游戏音效测试点
- 光条中心提取方法总结(二)
猜你喜欢
随机推荐
Pytorch问题总结
【论文阅读】SPANET: SPATIAL PYRAMID ATTENTION NETWORK FOR ENHANCED IMAGE RECOGNITION
sbl_init.asm-适合在编辑模式下看
arm-2-基础阶段
LeetCode_Nov_3rd_Week
腾讯、网易纷纷出手,火到出圈的元宇宙到底是个啥?
bind()系统调用的用处
[开发杂项][调试]debug into kernel
MNIST手写数字识别 —— 图像分析法实现二分类
IEEE802.X协议族
空洞卷积
抽象类、内部类和接口
关于DG(域泛化)领域的PCL方法的代码实例
How to get started with MOOSE platform - an example of how to run the official tutorial
基于BiGRU和GAN的数据生成方法
在AWS-EC2中安装Minikube集群
Copy Siege Lion 5-minute online experience MindIR format model generation
MOOSE平台官方第二个例子分析——关于创建Kernel,求解对流扩散方程
[Copy Siege Lion Log] Flying Pulp Academy Intensive Learning 7-Day Punch Camp-Study Notes
Pytest常用插件








