当前位置:网站首页>Lesson 1: finding the minimum of a matrix
Lesson 1: finding the minimum of a matrix
2022-07-07 09:32:00 【Fight! Sao Nian!】
subject :AcWing 1452. Find the minimum of the matrix
Given a n×n Matrix , The matrix contains n×n individual Different from each other The integer of .
Define the minimum : If the value of a number is smaller than that of all adjacent numbers , Then this value is called the minimum .
The adjacent numbers of a number refer to the four adjacent numbers in the upper, lower, left and right directions , Also note , The number at the boundary or corner may have less than four adjacent numbers .
Ask for in O(nlogn) Find the position of any minimum within the time complexity , And output its rows and columns .
The matrix in this question is hidden , You can use our preset int function query To get the value of a certain position in the matrix .
for example ,query(a,b) You can get the... In the matrix a Xing di b The value of the position of the column .
Be careful :
The rows and columns of the matrix are from 0 Numbered starting .
query() Function cannot be called more than (n+2)×⌈log2n⌉+n.
The answer is not unique , Output the position of any minimum value .
Data range
1≤n≤300, The integers in the matrix are int Within the scope of .
sample input :
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
sample output :
[0, 0]
Topic analysis :
The first way to think about it is to start from the starting point and find something smaller than yourself , Keep looking for , Then we will definitely find the minimum ( Because the points are different )
But the worst case is to visit n2 Time .
The second method is dichotomy , First find the minimum value in the middle column , Then look at the left and right
1. If v<l,v<r that v Is the minimum
2. If l<v, Then there is a minimum on the left
3. If r<v, Then there is a minimum on the right
Why? ?
Suppose the right r<v, So in the middle mid This column is better than r Be big , Then we use the first method to find that it is definitely impossible to cross mid This column ( Because I will look for something better than r Small number ), So in mid There must be a minimum on the right , This reduces the amount of search by half , Such repetition will finally find .
// Forward declaration of queryAPI.
// int query(int x, int y);
// return int means matrix[x][y].
class Solution {
public:
vector<int> getMinimumValue(int n) {
typedef long long LL;
const LL INF = 1e15;
int l=0,r=n-1;
while(l<r) // Dichotomy
{
int mid = l + r >> 1;
LL val=INF;
int k=0; // Which row to save is the smallest
for(int i=0;i<n;i++)
{
int t=query(i,mid);
if(t<val)
{
val=t;
k=i;
}
}
LL left=mid?query(k,mid-1):INF; // Query left
LL right=mid+1<n?query(k,mid+1):INF; // Query the right
if(val<left&&val<right)return {
k,mid}; // If the current point is the minimum
else if(left<val)r=mid-1;
else l=mid+1;
}
int k;
LL val=INF;
for(int i=0;i<n;i++)
{
int t=query(i,l);
if(t<val)
{
val=t;
k=i;
}
}
return {
k,l};
}
};
边栏推荐
- Postman data driven
- In fact, it's very simple. It teaches you to easily realize the cool data visualization big screen
- Confitest of fixture py
- Add new item after the outbound delivery order of SAP mm sto document is created?
- 4、 Fundamentals of machine learning
- flex弹性布局
- Where is the answer? action config/Interceptor/class/servlet
- Regularly modify the system time of the computer
- Run can start normally, and debug doesn't start or report an error, which seems to be stuck
- Install pyqt5 and Matplotlib module
猜你喜欢
Postman setting environment variables
Octopus future star won a reward of 250000 US dollars | Octopus accelerator 2022 summer entrepreneurship camp came to a successful conclusion
Entity of cesium data visualization (Part 1)
[SVN] what is SVN? How do you use it?
sqlplus乱码问题,求解答
Huawei HCIP - datacom - Core 03 jours
STM32 and motor development (from stand-alone version to Networking)
VSCode+mingw64
信息安全实验一:DES加密算法的实现
esp8266使用TF卡并读写数据(基于arduino)
随机推荐
H5网页播放器EasyPlayer.js如何实现直播视频实时录像?
Network request process
牛客网——华为题库(61~70)
NETCORE 3.1 solves cross domain problems
Jenkins automated email
Pytest+request+allure+excel interface automatic construction from 0 to 1 [five nails / flying Book notice]
Mysql:select ... for update
Postman setting environment variables
Information Security Experiment 2: using x-scanner scanning tool
Variable parameter of variable length function
Run can start normally, and debug doesn't start or report an error, which seems to be stuck
Huawei hcip datacom core_ 03day
Pycharm create a new file and add author information
華為HCIP-DATACOM-Core_03day
SiteMesh getting started example
Over 100000 words_ Ultra detailed SSM integration practice_ Manually implement permission management
软件建模与分析
第一讲:包含min函数的栈
Data association between two interfaces of postman
消费互联网的产业链其实是很短的,它仅仅承接平台上下游的对接和撮合的角色