AK思路总结帖: 第一题,直接暴力二分前缀和; 第二题,注意到颜色数目k<=14, 所以n+m-1 > k,最终答案肯定是0,所以其他情况直接dfs 暴力搜索就可以; 第三题,根据身高建立队列,这个首先需要建立一个答案的队列,然后从前往后按照个数进行插入就可以,复杂度n平方; 第四题,移动棋子,由于M,N个数都是1e5,所以肯定不能一个一个暴力挪动,由于所有棋子的移动操作都是相同的,那么从起点(p, q)到终点(x, y),就是p == x + delta_x, q == y + delta_y, 首先假设你有一个无限大的矩阵,你站在(0,0)处,然后一步步移动,就可以得到最后的所在的位置,也就是两个方向上的偏移量, 但是这里的移动操作遇到越界的情况,会跳过,所以在上面的移动过程中,你还需要记录一个你在两个方向上能够到达的最大值和最小值,从而根据这个最大最小值判断有无超出矩阵边界。这是因为,如果你移动过程中越过了边界,但又移动了回来,所以你会在移动回来的方向上浪费掉了越界的那些距离,因为右边的时候他们是不动的,这等价于你需要反方向移动越界的长度,这里画一画图就可以明白了。所以这个在两个方向上的坐标就是一个起点到终点的改变量,一个越界长度的反向的改变量的和。复杂度O(M+N)
点赞 1

相关推荐

吴offer选手:学到了,下次面试也放张纸在电脑上,不然老是忘记要说哪几个点
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务