4299. 范围内最大值 编程基础数组和二维数组 题目详情 测评详情 提交记录 输入n行n列的二维整型数组,给定坐标x,求坐标和其上、下、左、右、左上、左下、右上、右下中的最大值。 输入格式:
解析:首先需要读取输入的二维数组,然后根据给定的坐标x,计算其上、下、左、右、左上、左下、右上、右下中的最大值。
代码如下:
```python
def max_value(matrix, x):
n = len(matrix)
max_val = matrix[x][x]
directions = [(0, 1), (0, -1), (1, 0), (-1, 0), (-1, -1), (-1, 1), (1, -1), (1, 1)]
for direction in directions:
y, x = x + direction[0], x + direction[1]
if 0 <= y < n and 0 <= x < n:
max_val = max(max_val, matrix[y][x])
return max_val
# 读取输入
n = int(input())
matrix = []
for _ in range(n):
row = list(map(int, input().split()))
matrix.append(row)
x, y = map(int, input().split())
# 计算最大值
result = max_value(matrix, x - 1)
print(result)
```
在这个代码中,我们首先定义了一个函数`max_value`,它接受一个二维数组和一个坐标x作为输入,然后计算该坐标及其上、下、左、右、左上、左下、右上、右下中的最大值。接下来,我们读取输入的二维数组和坐标x,最后调用`max_value`函数计算结果并输出。
代码如下:
```python
def max_value(matrix, x):
n = len(matrix)
max_val = matrix[x][x]
directions = [(0, 1), (0, -1), (1, 0), (-1, 0), (-1, -1), (-1, 1), (1, -1), (1, 1)]
for direction in directions:
y, x = x + direction[0], x + direction[1]
if 0 <= y < n and 0 <= x < n:
max_val = max(max_val, matrix[y][x])
return max_val
# 读取输入
n = int(input())
matrix = []
for _ in range(n):
row = list(map(int, input().split()))
matrix.append(row)
x, y = map(int, input().split())
# 计算最大值
result = max_value(matrix, x - 1)
print(result)
```
在这个代码中,我们首先定义了一个函数`max_value`,它接受一个二维数组和一个坐标x作为输入,然后计算该坐标及其上、下、左、右、左上、左下、右上、右下中的最大值。接下来,我们读取输入的二维数组和坐标x,最后调用`max_value`函数计算结果并输出。