矩阵的极小值
作者:互联网
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