其他分享
首页 > 其他分享> > 矩阵的极小值

矩阵的极小值

作者:互联网

ACwing

class Solution {
public:
    vector<int> getMinimumValue(int n) {
        const int INF = ~(1 << 31);       //自然是有符号数的最大值
        int l = 0, r = n - 1;             //二分边界
        while(l <= r)                     //相等的时候也要寻找列的最小值
        {
            int col = (l + r) >> 1;       //中间列
            int row, val = INF;       
            for(int i = 0; i < n; i++) {
                int t = query(i, col);   
                if(t < val) row = i, val = t;              //找到本列中的最小值
            }
            if(col - 1 >= 0 && query(row, col - 1) < val) {  //左边的列比本列小,设置左边界
                r = col - 1; continue;
            }                                               
            if(col + 1 < n && query(row, col + 1) < val) {   //右边的列比本列小,设置右边界
                l = col + 1; continue;
            }
            return {row, col};                               //否则便是找到
        }
        return {-1, -1};
    }
};

标签:val,int,矩阵,continue,query,极小值,col,row
来源: https://www.cnblogs.com/sherkevin/p/16273302.html