[leetcode]用双指针压缩搜索空间

303 阅读1分钟

算法复杂度就像海绵🧽宝宝里的水, 挤一挤总会有的

鲁迅先生没有说过这句话

用双指针可压缩搜索空间, 降低复杂度的维度, 类似于动态规划算法中的压缩状态

这一题我们可以采用双重循环或者用hashTable来用空间换时间, 那么如何才能实现使用O(n)时间复杂度且使用O(1)空间复杂度来解决这个问题呢, 这时可利用双指针,一左一右指针, 指针在相互对撞的同时压缩了双重循环所需的搜索空间

这一题直观上好理解, 但是实际证明比较复杂

本题可以思考从矩阵的右上角开始寻找目标, 如果大于目标值, 则水平方向压缩搜索空间, 反之则垂直方向压缩搜索空间