vector二维数组 PTA 7-4 找鞍点
7-4 找鞍点 (20分)
一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。
本题要求编写程序,求一个给定的n阶方阵的鞍点。
输入格式:
输入第一行给出一个正整数n(1≤n≤6)。随后n行,每行给出n个整数,其间以空格分隔。
输出格式:
输出在一行中按照“行下标 列下标”(下标从0开始)的格式输出鞍点的位置。如果鞍点不存在,则输出“NONE”。题目保证给出的矩阵至多存在一个鞍点。
输入样例1:
4
1 7 4 1
4 8 3 6
1 6 1 2
0 7 8 9
输出样例1:
2 1
输入样例2:
2
1 7
4 1
输出样例2:
NONE
代码:
#include <bits/stdc++.h>
using namespace std;
int main()
{
vector<vector<int>>a;
int n,x;
cin>>n;
if(n==1){cout<<"0 0";return 0;}
for (int i = 0; i < n; ++i) {
vector<int>tmp;
for (int j = 0; j < n; ++j) {
cin>>x;
tmp.push_back(x);
}
a.push_back(tmp);
}
int mx=0,mn=100,row,line,tmp;
for (int p = 0; p < n; ++p)
{
mx=0,mn=100,row=-1,line=-1;
int k,l;
for (k = 0; k < n; ++k)
{
if(mx<=a[p][k])
{
mx=a[p][k];
line=k;
}
}
//求出行最大,p,line为其下标
for (l = 0; l < n; ++l)
{
if (mn >= a[l][line])
{
mn=a[l][line];
row=l;
}
}
//求出列最小,row,line为其下标
if(p==row){
cout<<row<<" "<<line<<endl;
return 0;
}
//判断row和p是否相等
}
cout<<"NONE"<<endl;
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了