关注
2、草原坝上滑梯
只能从上下左右侧移动
输入:行数R 列数C
输出:最长区域的长度
样例:
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
输出:25
#include <iostream>
#include <algorithm>
using namespace std;
int r;//行
int c;//列
int a[1000][100];//输入矩阵
int result[1000][1000];//输出矩阵
//递归思想:分别求出上下左右方向的最大长度
int maxLength(int i, int j)
{
int left = j - 1;
int right = j + 1;
int high = i - 1;
int low = i + 1;
int left_value;
int right_value;
int high_value;
int low_value;
//左侧最大长度
if (left >= 0 && a[i][left] < a[i][j])
left_value = maxLength(i, left) + 1;
else
left_value = 0;
//右侧最大长度
if (right <= c - 1 && a[i][right] < a[i][j])
right_value = maxLength(i, right) + 1;
else
right_value = 0;
//上侧最大长度
if (high >= 0 && a[high][j] < a[i][j])
high_value = maxLength(high, j) + 1;
else
high_value = 0;
//下侧最大长度
if (low <= r - 1 && a[low][j] < a[i][j])
low_value = maxLength(low, j) + 1;
else
low_value = 0;
int max1 = max(high_value, low_value);
int max2 = max(left_value, right_value);
return max(max1, max2);
}
int main()
{
while (cin >> r >> c)
{
//初始化矩阵
for (int i = 0; i < r; i++)
for (int j = 0; j < c; j++)
cin >> a[i][j];
//计算每一个位置的最大长度
for (int i = 0; i < r; i++)
for (int j = 0; j < c; j++)
result[i][j] = maxLength(i, j);
//寻找所有位置中最大的长度
int maxLen = 0;
for (int i = 0; i < r; i++)
{
for (int j = 0; j < c; j++)
if (result[i][j] > maxLen)
maxLen = result[i][j];
}
cout << maxLen + 1 << endl;
}
system("pause");
return 0;
}
查看原帖
点赞 3
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 我来点评面试官 #
6418次浏览 52人参与
# 实习教会我的事 #
37224次浏览 320人参与
# 京东开奖 #
442177次浏览 2489人参与
# 今年秋招是回暖还是遇冷 #
14553次浏览 88人参与
# 如果不考虑收入,你最想做什么工作? #
36576次浏览 225人参与
# 你实习是赚钱了还是亏钱了? #
15724次浏览 152人参与
# 商战,最累的是我们 #
24833次浏览 91人参与
# 京东工作体验 #
17368次浏览 104人参与
# 同bg的你秋招战况如何? #
163926次浏览 953人参与
# 教师节,你送祝福了吗 #
9702次浏览 71人参与
# 用一句话形容你的团队氛围 #
9567次浏览 115人参与
# 秋招开始捡漏了吗 #
53060次浏览 361人参与
# 三一重工求职进展汇总 #
21747次浏览 82人参与
# 找工作八股要背到什么程度? #
8755次浏览 143人参与
# 考研人,我有话说 #
150607次浏览 1199人参与
# 硬件人,你被哪些公司给挂了 #
69089次浏览 932人参与
# 58同城求职进展汇总 #
39015次浏览 260人参与
# 你找工作是从容有余 or 匆忙滚爬? #
5654次浏览 64人参与
# 华为存储OD事变 #
144267次浏览 724人参与
# 上班后,才发现大学__白学了 #
9096次浏览 57人参与
# 大学生该如何认清当下的就业环境? #
107994次浏览 637人参与
查看22道真题和解析