Planting Trees (双指针+ 单调队列优化处理)

题目大意:

给出一个矩阵, 和M ,找到一个最大的子矩阵,使得里面的最大值-最小值的差值小于 M

 

思路:

  • 关键信息是最大和最小, 就保留这个信息即可
  • 然后考虑如何枚举每一个矩阵? 
  • 枚举矩阵的上下边界, 然后在考虑矩阵的左右边界,
  • 左右边界处理的时候,  这一列的最大最小值,可以通过枚举上下边界的时候线性DP出来
  • 然后这样子就转为1维, 明显符合单调性 利用双指针On的处理
  • 处理的时候在更具 只保留 关键最大最小的信息, 利用2个单调队列去保存,  下标递增,值根据最大最小递增,(新的树进来,就去删除不符合的数彳于了)
  • L 的变化:  当有不符合的情况的时候, 就把 l -> min(最大坐标,最小的坐标)+1  就ok了 

 

posted @ 2023-04-12 18:05  VxiaohuanV  阅读(12)  评论(0编辑  收藏  举报