自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 475. 供暖和取暖:二分查找+双指针+贪心算法+排序

解题思路 依题意,给了两个数组,分别是房子和供暖器。 要求的是供暖器的最小半径,使得每个房子都可以得到供暖。 按常规思维,可知: 房子总是找最近的供暖器请求供暖,这时候求出半径r1 所有的房子都会求出一个半径,在这个半径数组里面的最大值,就是题解。 那么问题转化成:如何快速的找到离房子最近的供暖器。 供暖器是个数组,也就是这个房子在供暖器这个数组中,左边所需半径和右边所需半径的最小值,就是要求的r1 如何快速查找呢?我们首先想到的是二分查找,转化为代码就是先求第一个比house大的值的位置,然后j-1就是最

2021-12-21 22:06:09 102

原创 807. 保持城市天际线:贪心算法思路

解题思路 个人感觉算是简单题,主要是要读懂题意; 首先要理解城市天际线的概念,天际线实际上就是每行每列中绝对最高的楼层。会根据角度的变化而改变,这边只有4个角度。 由题意可知,楼层增高后,不管哪个角度看,天际线都和原来保持一致。 其实一个元素需要考虑的就两个方向的视角,比如以第一个元素grid[0][0]为例; 从右往左看,天际线是行里最大的元素,这时候可以增长的层数就是最大元素-此元素楼高记作L1 从上往下看,天际线是列里最大的元素,同理可得L2; 由于不能改变天际线,所以这个增长楼层数应该是取这L1和L

2021-12-21 22:03:00 151

原创 1610. 可见点的最大数目(角度计算、极坐标、排序和滑动窗口)

解题思路 先看题,视野无限延伸,所以肯定不会去想求视野面积然后用直角坐标系算相对位置。 视野两边无限延伸让人想到什么?没错,就是角度,想到角度就容易想到另外一个坐标系:极坐标系。 先看下面的图: 三角形AOB,AB是y BO是x,那么求∠AOB怎么求呢?很简单, tanθ=y/x; θ = arctan y/x 转化为代码就是:atan2(y,x); 所以,我们可以把人的位置看作极坐标的原点O,那么就需要算出每个点先对于O的极角θ 所以θ = arctan dy/dx(其中dy = yi - y0, dx

2021-12-21 21:59:14 161

原创 630. 课程表 III:很典型的贪心算法+可以反悔的题目。

解题思路 贪心的证明在前面的题解已经很详细了,有兴趣的可以在前面的题解看一下,这边主要讲怎么想到这个贪心。 类比在平时的选课过程中,我们总是选择先修快要截止的课程,所以我们应该先对数组排序,将截止时间靠前的课最优先去考虑。 怎么判断能修完这个课程呢?我们目前的已用时间+这个课所需的时间,如果能小于他的截止时间,就可以修完。 所以在这里先把可以修的课程记录一下,然后按课程持续时间来排序。(代码体现是最大优先队列) 这时候,如果我们遇到了持续时间短的课程,肯定会想把持续时间最长的课程替换掉,先修短的。 这里为什

2021-12-21 21:54:37 219

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除