![](https://img-blog.csdnimg.cn/20190918140213434.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
leetcode
qwq
goto_1600
我何来寂寞,哪有寂寞可言。
展开
-
leetcode 6054. 逃离火灾 思维 bfs
link思路:当然可以二分 + bfs 复杂度O(log(n∗m)n∗m)O(log(n*m)n*m)O(log(n∗m)n∗m) 这个比较好想,但如何进一步优化,我们可以逆向考虑,从终点倒着找到离终点最近的火和最近的人的距离,当然如果火比人先到那肯定就是-1,如果找不到火就是1e9,然后就判断最近的火和人的位置关系,因为右下角只有两种转移位置,一种是上方一种是左方,有个比较有意思的性质,到两个方向的人的差要么是0,要么是1,而火的差距可以取到0,1,2,大家可以思考一下为什么?如果最近的火到这两个原创 2022-05-02 13:37:27 · 255 阅读 · 0 评论 -
leetcode 工作每日一题 475. 供暖器 (二分 stl)
题意:冬季已经来临。 你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖。在加热器的加热半径范围内的每个房屋都可以获得供暖。现在,给出位于一条水平线上的房屋 houses 和供暖器 heaters 的位置,请你找出并返回可以覆盖所有房屋的最小加热半径。思路:可以二分写,但会多一个log,其实双指针on 能做的应该,无非就是找到离房子最近的供暖器,然后每个房子取max即可。C++code:class Solution {public: int findRadius(vector<原创 2021-12-20 10:02:30 · 187 阅读 · 2 评论 -
leetcode 工作 每日一题 997. 找到小镇的法官
题意:思路:直接模拟即可 复杂度O(n2)O(n^2)O(n2)class Solution { public int findJudge(int n, int[][] trust) { boolean g[][]=new boolean [n+1][n+1]; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) g[i][j]=false; for(int i=0;i<trust.l原创 2021-12-19 23:08:49 · 240 阅读 · 0 评论 -
leetcode 工作 每日一题 419. 甲板上的战舰 双指针
题意:每个连续的x成为一组,每一组x独立,求x组的个数思路:双指针 复杂度O(row*col)code javaclass Solution { public int countBattleships(char[][] board) { int n=board.length; if(n==0) return 0; int m=board[0].length; bool原创 2021-12-18 22:59:35 · 309 阅读 · 0 评论 -
leetcode 每日一题 1518. 换酒问题(模拟)
思路:每次取模换率,把多出来的加到膜完的数上面。class Solution {public: int numWaterBottles(int numBottles, int numExchange) { int res=numBottles; while(numBottles>=numExchange) { int tt=numBottles/numExchange; res+=tt; .原创 2021-12-17 17:59:15 · 415 阅读 · 0 评论 -
(工作预备)lc每日一题
思路:类似极角排序加双指针,不知道那个夹角怎么求,结果看题解可以atan2求。atan2大概是这么个分布,然后双指针即可,记得把数组扩增两倍再加个2pi,每次更新最大值即可,还有个细节就是和源点在同一点直接加就行。const double PI=acos(-1);class Solution {public: int visiblePoints(vector<vector<int>>& points, int angle, vector<int&g.原创 2021-12-16 10:36:28 · 1038 阅读 · 0 评论 -
k进制数交换
问题进入k进制数的数位交换问题,就是给出一个k进制的数,求出其中任意两个数位交换后的大小我们先以十进制数123为例,假如交换第一位和第二位变成213。那么这两个数之间存在什么关系呢,我们注意到百位上本来是1,变成了2之后原数就要增加(2-1)*100;十位上本来是2,变成1之后原数就要增加(1-2)*10。那么再考虑交换前左边的数小于右边的数,就变成了减的较多。总之,拿每一位变化后的数减去变化...原创 2020-02-25 21:39:15 · 471 阅读 · 0 评论